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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

Colletions的sort方法
这个表达式有点不能理解
List集合中 装的是 T类型  这个T类型必须实现Comparable接口

如果T是student 实现了 Comparable
父类Person没实现Comparable
Comparable<? super T>这里为什么是  <? super T> 这不是表示 学生类和学生类的父类都可以吗

这不就变成Person可以跟学生比较了吗  而且集合也只接收 T类型的啊 不接受T类型的父类啊
求解释。。。

评分

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

查看全部评分

3 个回复

倒序浏览
比如说T是Student  那么返回值<T extends Comparable> 说明是要继承了这个接口的, 但是Person没有继承这个接口。所以返回的对象不会是Person 。这个跟泛型的参数类型的兼容性有关。 然后Comparable<?super T>有是Student或者父类以上的。 两者都满足的就只有Student了

评分

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

查看全部评分

回复 使用道具 举报
榨菜 发表于 2014-3-7 17:22
比如说T是Student  那么返回值 说明是要继承了这个接口的, 但是Person没有继承这个接口。所以返回的对象不 ...

还是有点不理解啊
两者都满足只有T 为什么不直接 Comparable<T>;
回复 使用道具 举报
asvsass 发表于 2014-3-7 17:27
还是有点不理解啊
两者都满足只有T 为什么不直接 Comparable;

你想想, 如果Person实现了接口  然后Student只是继承了Person。  -------------意思表达不清楚了-------
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马