Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >理解Java中泛型的语法

理解Java中泛型的语法
EN

Stack Overflow用户
提问于 2012-12-27 05:51:45
回答 1查看 117关注 0票数 0

我开始研究Java-泛型。我对泛型语法及其含义有一些误解。如果我的问题显得过于琐碎,我恳请谅解。

  1. 你可以写: 公共类MyClass {}
  2. 你可以写: 公共类MyClass {}
  3. 你也可以写: 公共课程MyClass<?扩展SomeClass> {}

这些情况下的区别是什么?

  1. 第一种情况对我来说是绝对清楚的:您可以使用SomeClass实例和他的子类实例作为MyClass的类参数。
  2. 我认为在这种情况下,您只能使用MyClass的子类实例
  3. 同样:只使用MyClass的子类实例作为MyClass的类参数。

我的猜测对不对?特别是第二例和第三例的使用有什么区别?

谢谢您的解释!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-27 06:00:07

区别在于不能在泛型类声明中使用?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class MyClass<? extends SomeClass> {} // this isn't valid  

上述声明将导致编译器错误。

From Documentation:

泛型类的定义格式如下: 类名{ /* . */ }由尖括号(<>)分隔的类型参数部分在类名后面。它指定类型参数(也称为类型变量) T1、T2、.和Tn。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class MyClass<C extends SomeClass> {} 

在这个声明中,C是一个类型参数,它可以是SomeClass类型,也可以是它的任何子类。

示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Class SomeOtherClass extends SomeClass {
}

MyClass clazz = new MyClass<SomeOtherClass>();
MyClass clazz = new MyClass<SomeClass>(); 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14055761

复制
相关文章
对java中的泛型的理解
在Thinking in java 第五版的第二十章中,开篇说到,在普通的类和方法中只能用特定的类型:基本数据类型和类类型。如果在编写代码的过程中需要用到多种类型,那么这种严苛就会对代码的束缚很大。如下代码:
冬天里的懒猫
2020/08/03
6920
java泛型理解
对象,所以 在 JDK1.5 之前只能把元素类型设计为 Object , JDK1.5 之后使用泛型来
一个风轻云淡
2022/11/13
2600
java泛型理解
java之泛型理解
视频地址:https://www.bilibili.com/video/BV1Rx411876f/index_689.html
shaoshaossm
2022/12/27
2130
JAVA中的泛型
程序在运行时发生了问题java.lang.ClassCastException。 为什么会发生类型转换异常呢? 我们来分析下:由于集合中什么类型的元素都可以存储。导致取出时强转引发运行时 ClassCastException。 怎么来解决这个问题呢?
星哥玩云
2022/09/14
1.4K0
JAVA中的泛型
java中的泛型
java语言的多态性让我们可以把某些只能在运行时确定的类型在编译时使用父类或者父接口表示,这确实解决了很多问题。但有时程序员在声明某些变量时不知道它的具体父类或父接口,只能选择公共父类Object类型,这很不方便。
别团等shy哥发育
2023/02/25
2.7K0
java中的泛型
Java中的泛型
Java 为什么要发明泛型?泛型给我们开发带来了哪些便利,对于代码层面来说,泛型又给我们带来了什么?
袁新栋-jeff.yuan
2020/08/26
1.1K0
Java中的泛型
深入理解 Java 泛型
泛型要求在声明时指定实际数据类型,Java 编译器在编译时会对泛型代码做强类型检查,并在代码违反类型安全时发出告警。早发现,早治理,把隐患扼杀于摇篮,在编译时发现并修复错误所付出的代价远比在运行时小。
静默虚空
2022/03/23
4220
深入理解 Java 泛型
深入理解java的泛型
泛型是JDK 5引入的概念,泛型的引入主要是为了保证java中类型的安全性,有点像C++中的模板。
子润先生
2021/06/22
4250
深入理解 Java 泛型
文章主要介绍了Java中的泛型概念,包括泛型的定义、约束、类型擦除以及原始类型和泛型类型的转换。此外还讲解了在Java中使用泛型的好处以及如何在代码中使用泛型。
张拭心 shixinzhang
2018/01/05
2.2K0
Java 泛型:概念、语法和应用
上述代码中,类 MyGenericClass 定义了一个泛型类型参数 T,它可以用来表示任何数据类型。
小尘要自信
2023/10/10
2380
深入理解 Java 泛型
泛型提供了一种将集合类型传达给编译器的方法,一旦编译器知道了集合元素的类型,编译器就可以对其类型进行检查,做类型约束。
Coder小黑
2020/01/16
5940
深入理解 Java 泛型
Java 泛型:理解和应用
这就是泛型的概念,是 Java 后期的重大变化之一。泛型实现了参数化类型,可以适用于多种类型。泛型为 Java 的动态类型机制提供很好的补充,但是 Java 的泛型本质上是一种高级语法糖,也存在类型擦除导致的信息丢失等多种缺点,我们可以在本篇文章中深度探讨和分析。
phoenix.xiao
2023/08/28
2570
Java 泛型:理解和应用
深入理解 Java 泛型
泛型最开始是在 C++ 中提出的,实现为模块方法和模板类,主要为了解决与类型相关的算法的重用问题,比如对栈的描述:
BUG弄潮儿
2021/10/08
5880
深入理解Java泛型(一.泛型的作用与定义)
泛型使编译器可以在编译期间对类型进行检查以提高类型安全,减少运行时由于对象类型不匹配引发的异常。
Anymarvel
2020/07/25
1.8K0
Java泛型中的细节
学习Java,必不可少的一个过程就是需要掌握泛型。泛型起源于JDK1.5,为什么我们要使用泛型呢?泛型可以使编译器知道一个对象的限定类型是什么,这样编译器就可以在一个高的程度上验证这个类型消除了强制类型转换,使得代码可读性好,而这个过程是发生在编译时期的,即在编译时期发现代码中类型转换的错误所在,及时发现,而不必等到运行时期抛出运行时期的类型转换异常。
w4ngzhen
2023/10/16
2590
Java中的泛型详解
我们都知道集合中是可以存放任意对象的,只要把对象存储集合后,那么这时他们都会被提升成Object类型。当我们在取出每一个对象,并且进行相应的操作,这时必须采用类型转换。 大家观察下面代码:
共饮一杯无
2022/11/28
8120
【说站】java泛型方法的语法使用
这类似于声明的泛型类型,但类型参数的作用域仅限于声明的方法。允许使用静态和非静态泛型方法以及泛型数。
很酷的站长
2022/11/23
3510
【说站】java泛型方法的语法使用
Java泛型中<?> 和 <? extends Object>的异同分析
点击上方蓝色“程序猿DD”,选择“设为星标” 回复“资源”获取独家整理的学习资料! 作者 | 刘一手 来源 | 公众号「锅外的大佬」 Java Generics – <?> vs <? extend
程序猿DD
2023/04/17
7950
Java泛型中<?> 和 <? extends Object>的异同分析
Java--泛型程序设计语法
定义简单的泛型类: public class Pair<T>{ private T first; private T second; public T getFirst(){ return first; } public T getSecond(){ return second; } public void setFirst(T newVal){ first = newVal; } public void setSecond(T newVal){
SuperHeroes
2018/05/22
6690
java泛型理解。代码更明了。
在工作中,相对于现有的项目源码的数据库操作层,无论是mybatis,hibernate或者是自己封装的baseModel层,都会使用到泛型。
陈灬大灬海
2018/09/12
3790

相似问题

理解java -泛型类型中实现多个接口作为参数的泛型语法。

10

理解泛型方法的语法

41

Java泛型理解

54

理解Java中的泛型

21

理解Java泛型

237
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文