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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李龙涛 黑马帝   /  2011-7-25 17:25  /  2229 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

<T extends List>和<? extends List>有什么区别啊

评分

参与人数 1技术分 +1 收起 理由
admin + 1 看看马友们怎么回答!

查看全部评分

4 个回复

倒序浏览
说白了就是写成T就是将类型固定,而?则不固定,比如下面这个例子[code=java]public class ListDemo<T extends List> {
...
}[/code]这么写就会报错
  1. ListDemo<ArrayList>  LD = new ListDemo<LinkedList>(new LinkedList());
复制代码
如果把 ListDemo<T extends List> 改成 ListDemo<? extends List>的话
  1. ListDemo<ArrayList>  LD = new ListDemo<LinkedList>(new LinkedList());
复制代码
则不会报错
[ 本帖最后由 那日苏 于 2011-07-25  18:42 编辑 ]

评分

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

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-7-25 18:44:36
藤椅

泛型问题-通配符

其实这是一个通配符的理解,无非就是规定了范围,就不多言l,有前辈的帖子给你参考下:[url]http://hi.baidu.com/augustus_blog/blog/item/ec694737997dfc1e90ef39d9.html[/url]

评分

参与人数 1技术分 +2 收起 理由
admin + 2 2分必须的!

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-7-25 20:15:46
板凳
<T extends List>这里引入类型T唯一目的就是接受各种泛型数据,但这种方法不清晰,不简洁。
<? extends List>提供了更简洁的方法,以通配符“?”表示未知对象类型,代替类型参数,一般采用它编写程序。具体的实例你可以查找下资料,里面应该有介绍。

评分

参与人数 1技术分 +1 收起 理由
admin + 1 只能加一分哦!

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-7-27 19:02:06
报纸
这是关于通配符的问题 T是固定的,而?则是不固定
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马