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

© 苏格拉底的弟子 黑马帝   /  2012-1-30 10:04  /  2830 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 苏格拉底的弟子 于 2012-1-30 22:46 编辑

java泛型中<?>和<T>有什么区别?

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

4 个回复

倒序浏览
使用<T>来声明类型持有者名称,自定义泛型类时,类持有者名称可以使用T(Type),如果是容器的元素可以使用E(Element),若键值匹配可以用K(Key)和V(Value)等,若是<?>,则是默认是允许Object及其下的子类,也就是java的所有对象了。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
?是通配符..接收的是未知类型,,
T是指定的类型..

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
?是一个通配符,T只是一个字符。
<?   extends   list <String> >   与 <T   extends   <List> > 在这儿不具有对比性。
?在这儿是指该函数可以接受List <?> 型参数,而T则指相应函数可以接受List类型或者其子类型的参数。
觉得就是 你不能把对象放进一个未知类型的集合中去。而T呢
英文版pdf下载链接:http://java.sun.com/j2se/1.5/pdf/generics-tutorial.pdf

评分

参与人数 1技术分 +1 收起 理由
荣凯旋 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马