黑马程序员技术交流社区

标题: 关于泛型的问题 [打印本页]

作者: 李龙涛    时间: 2011-7-25 17:25
标题: 关于泛型的问题
<T extends List>和<? extends List>有什么区别啊
作者: 那日苏    时间: 2011-7-25 18:40
说白了就是写成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 编辑 ]
作者: 匿名    时间: 2011-7-25 18:44
标题: 泛型问题-通配符
其实这是一个通配符的理解,无非就是规定了范围,就不多言l,有前辈的帖子给你参考下:[url]http://hi.baidu.com/augustus_blog/blog/item/ec694737997dfc1e90ef39d9.html[/url]
作者: 匿名    时间: 2011-7-25 20:15
<T extends List>这里引入类型T唯一目的就是接受各种泛型数据,但这种方法不清晰,不简洁。
<? extends List>提供了更简洁的方法,以通配符“?”表示未知对象类型,代替类型参数,一般采用它编写程序。具体的实例你可以查找下资料,里面应该有介绍。
作者: 匿名    时间: 2011-7-27 19:02
这是关于通配符的问题 T是固定的,而?则是不固定




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