社区
Java SE
帖子详情
java 泛型 通配符
fwaction
2009-12-15 04:22:45
这个始终不太理解。。谁能讲解一下.
thanks.
...全文
82
2
打赏
收藏
java 泛型 通配符
这个始终不太理解。。谁能讲解一下. thanks.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hugogoo
2009-12-15
打赏
举报
回复
Set<? extends Customer>这样的一个数据结构是指一个Set,这个里面Set存放的元素可以是任意继承或实现Customer的对象。根据上述代码Customer是个基类或接口,而CustomerImpl是Customer的子类或实现,上述代码的意义在于,用户只知道返回的是元素为Customer的Set,但是具体是什么内部实现,比如是CustomerImpl还是CustomerImpl2用户并不关心,说到底这是引入generic的一种多态性的体现。这也是一种工厂模式!
hugogoo
2009-12-15
打赏
举报
回复
1.先解释最中间的括号:某一个对象A继承了K这个类,某一个对象B继承V这个类
2. Map.Entry是map中的一个方法,该方法可以返回一个对象的集合,那么现在得这个集合就是,A,B所组成的集合
3.iterator迭代器类似于for循环,将A,B这个集合迭代出来,取出A,B单独的对象
Java
泛型
通配符
详解
对于 super 类型>,编译器将只允许写操作,不允许读操作。即只可以设值(比如set操作),不可以取值(比如get操作)。 对于 extends 类型>,编译器将只允许读操作,不允许写操作。即只可以取值,不可以设值。 以上两点都是针对于源码里涉及到了类型参数的函数而言的。比如对于List而言,不允许的写操作有add函数,因为它的函数签名是boolean add(E e);,此时这个形参E就变成了一个涉及了
通配符
的类型;而不允许的读操作有get函数,因为它的函数签名是E get(int index)
Java
泛型
中的
通配符
详解
可以使用上界
通配符
来放宽对变量的限制。例如,你想编写一个方法,该方法适用于List, List 和 List;就可以通过使用上界
通配符
来实现这一点。声明一个上界
通配符
,需要使用
通配符
('?'),跟上 extends 关键字,然后再跟它的上界。比如,编写用于 Number 列表和 Number 子类型(如 Integer、Double 和 Float)的方法,可以指定 List
Java
泛型
&
通配符
Java
泛型
(Generics)是 JDK 5 引入的一个新特性,它提供了编译时类型安全检测机制,允许在编译时检测出非法的类型。
泛型
的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。
泛型
擦除是指在编译过程中,
Java
编译器会将
泛型
类型信息擦除,将
泛型
类型转换为原始类型(Raw Type),也就是去掉
泛型
参数的类型信息,使得在运行时无法获取
泛型
的实际类型参数。例如,编译器会在编译期间动态地将
泛型
T 擦除为 Object 或将 T extends xxx 擦除为其限定的类型 xxx。
Java
泛型
使用
通配符
ArrayList
泛型
,JDK1.5新加入的,解决数据类型的安全性问题,其主要原理是在类声明时通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型。使用
泛型
时,
泛型
类型必须为引用数据类型,不能为基本数据类型,
Java
中的普通方法,构造方法,静态方法中都可以使用
泛型
,方法使用
泛型
之前必须先对
泛型
进行声明,可以使用任意字母,一般都要大写。在引入范型之前,要在类中的方法支持多个数据类型,就需要对方法进行重载,在引入范型后,可以解决此问题(多态),更进一步可以定义多个参数以及返回值之间的关系。
Java
泛型
通配符
深度解析:无限定、上界、下界
通配符
全面掌握
泛型
通配符
如同一个无形的手,操控着程序的行进方向,让程序的逻辑更加严密,更加安全。
泛型
通配符
,顾名思义,它是
泛型
的一种特殊形式,用于表示各种类型的
泛型
。你可能会问,为什么我们需要它呢?其实,当我们在开发过程中,经常会遇到一种情况,就是我们无法确定一个集合的具体类型,或者我们需要表示任何类型的情况,这时候,
泛型
通配符
就派上了用场。它的出现,不仅让我们的代码更加灵活,而且也让我们的程序更加健壮。在接下来的内容中,我们将会深入探讨
泛型
通配符
的各种形式,包括无限定
通配符
、上界
通配符
和下界
通配符
。
Java SE
62,620
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章