黑马程序员技术交流社区

标题: 泛型中<T>与<?>的区别? [打印本页]

作者: 风决    时间: 2014-7-15 21:56
标题: 泛型中<T>与<?>的区别?
泛型中<T>与<?>的区别?求解释下各个作用么和适合场景?
作者: 杨冬冬    时间: 2014-7-15 22:05
这里有一个帖子的地址http://bbs.csdn.net/topics/300181589讲的就是这个问题希望能够帮助你
作者: 柀堓椛開    时间: 2014-7-15 22:09
说白了就是写成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());
则不会报错
作者: 叶飞翔    时间: 2014-7-15 22:29
T可以具体类型转换,但是?不行。。。。
作者: 赵顺超    时间: 2014-7-15 22:48
jdk1.5版本后,出现了泛型,用于解决集合框架的安全问题。当指定两种泛型的集合,则迭代时也要定义两种泛型的迭代器,此时可以将迭代器的泛型改为?通配符。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2