A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 风决 中级黑马   /  2014-7-15 21:56  /  1227 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

泛型中<T>与<?>的区别?求解释下各个作用么和适合场景?

4 个回复

倒序浏览
这里有一个帖子的地址http://bbs.csdn.net/topics/300181589讲的就是这个问题希望能够帮助你
回复 使用道具 举报
说白了就是写成T就是将类型固定,而?则不固定,比如下面这个例子
public class CollectionGenFoo<T extends Collection> {
...
}

这么写就会报错
CollectionGenFoo<Collection> listFoo = new CollectionGenFoo<ArrayList>(new ArrayList());

如果把 CollectionGenFoo<T extends Collection> 改成 CollectionGenFoo<? extends Collection>的话
CollectionGenFoo<Collection> listFoo = new CollectionGenFoo<ArrayList>(new ArrayList());
则不会报错
回复 使用道具 举报
T可以具体类型转换,但是?不行。。。。
回复 使用道具 举报
赵顺超 来自手机 中级黑马 2014-7-15 22:48:33
报纸
jdk1.5版本后,出现了泛型,用于解决集合框架的安全问题。当指定两种泛型的集合,则迭代时也要定义两种泛型的迭代器,此时可以将迭代器的泛型改为?通配符。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马