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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 冯培军 中级黑马   /  2012-9-27 21:19  /  1570 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

<? super E>和<?extends E:>
<?extends E:>还好理解。
视频里面说的类似多态:Person a=new Student();
但是<? super E>呢?
不过,我想什么情况下用<? super E>,什么情况用<?extends E:>,API里面还是有不同的表明。不知道是基于什么理由?
<?extends E:>可以用多态解释
<? super E>呢?

TreeSet()的构造函数TreeSet(Comparator<? super E> comparator) 就使用<? super E>,
我没搞明白。可能还是不太理解Comparator吧。

2 个回复

倒序浏览
就是说,这个set集合里要么放E类型数据,要么放E父类的数据,只能放这两样
其实泛型就是来固定这个容器里只能放什么类型的数据
回复 使用道具 举报
1,说一下super和extends这两个单词,super是父类,extends是继承父类,
2,?extends E意思是:“?”继承E,就是说“?”指代的是继承E的类,那么就是说?代表的是E或E的子类
3,?super E,意思就是说?是E或E的父类,
4,构造函数TreeSet(Comparator<?super E>comparator)你可以先把泛型去掉进行理解,意思就是说
    TreeSet(Comparator comparator)TreeSet()这个构造函数的参数是Comparator类型的变量
     现在把泛型加入Comparator<?super E>comparator,其中规定的泛型就是说需要传递什么样的比较器,
    那么需要传递什么样的比较器呢?<?super E>就是这种类型的!就是规定的E类或者E的父类

这是我的理解不知道能不能帮到你
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马