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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 庄星睿 中级黑马   /  2012-7-17 09:18  /  1437 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 庄星睿 于 2012-7-17 09:22 编辑

Collections 中的sort方法

public static <T extends Comparable<? super T>> void sort(List<T> list)

如果这样定义呢,往里传集合是就明确了传必须是Comparable的子类类型
public static <T> void sort(List<T extends Comparable<? super T>>  list)

泛型定义时前后不用一样吗
public static <T extends Comparable<? super T>> void sort(List<T extends Comparable<? super T>>  list)

这三种定义的区别是什么




2 个回复

正序浏览
可以肯定的是你的后两种写法是错误的。
在第一种写法中,T代表的是Comparable和它的子类类型,而传入的参数也是Comparable和它的子类类型。
由于不知道如何添加图片,测试截图不能上传,你可以自己测试,
回复 使用道具 举报
? 通配符,也可以理解为占位符。
泛型的限定:
? extends E: 可以接收E类型或者E的子类型,上限。
? super E: 可以接收E类型或者E的父类型,下限
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马