泛型? extends Object 的问题

宝石娃娃 发布于 2013/05/22 16:49
阅读 1K+
收藏 0

Set<? extends Object> 这样代表可以放任何对象

那为什么Set< Object>又代表什么呢

加载中
0
sxgkwei
sxgkwei

如果是Object,那么,你放进去任何对象,再次取出来,都成了Object类型,然后你要用具体对象呢?是不是要强制类型转换——这被认为是不安全的操作。

而问号呢有啥好处呢?那就是说,你放进去什么类型,然后取出来还是什么类型,这样就不用强制类型转换这样的不安全操作出现在你代码里面了。

泛型,说白了,就是为了处理类型不明确,然后强制转来转去不安全的问题。而后就是在代码中,类型明确时,很多和类型有关的代码也容易写很多。

0
Beyond-Bit
Beyond-Bit

Set<? extends Object> 

声明该Set模板类的"类型变量"可以是所有Object的子类


Set< Object>

代表存放所有的Object

0
宝石娃娃
宝石娃娃

引用来自“Beyond-Bit”的答案

Set<? extends Object> 

声明该Set模板类的"类型变量"可以是所有Object的子类


Set< Object>

代表存放所有的Object

问题是Object的子类 不也是Object类吗 。
返回顶部
顶部