黑马程序员技术交流社区

标题: 泛型 [打印本页]

作者: 张稳    时间: 2014-4-23 23:55
标题: 泛型
泛型中T和?的区别是什么,自认为T可以代替?
作者: 程序爱好者    时间: 2014-4-24 00:03
使用<T>来声明类型持有者名称,自定义泛型类时,类持有者名称可以使用T(Type),如果是容器的元素可以使用E(Element),若键值匹配可以用K(Key)和V(Value)等,若是<?>,则是默认是允许Object及其下的子类,也就是java的所有对象了。
作者: 宋美成    时间: 2014-4-24 00:33
对于第一种<T> : 只能明确指定使用这一种类型,而且类型一旦确定以后就不能改变,若使用了其他类型是会报错的。
对于第二种<?> : 其适用范围会比较广,如果是指定了一种类型,他不仅可以使用该类,而且可以使用与该类相关的其他类,
比如(1)<?extends X>:我们可以接受X类型以及X类型的子类型,这种我们称之为上限!通常才储存时,我们选择上限,自己慢慢体会!
(2)<?superX>:我们可以接受X类型以及X类型的父类型,我们称之为下限,在取出元素是我们选择下限。
作者: pray    时间: 2014-4-26 00:38
好久都没有这么笑了~
作者: 完美恋爱    时间: 2014-4-26 01:43
?是通配符,T是在自定义的时候使用,就是说当你不知道传入的参数是什么类型的时候,就可以写T,当然,目前就你所学的知识是用不到T的吧!只能用到通配符




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