黑马程序员技术交流社区

标题: 泛型限定问题 [打印本页]

作者: 庄星睿    时间: 2012-7-17 09:18
标题: 泛型限定问题
本帖最后由 庄星睿 于 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)

这三种定义的区别是什么





作者: 位雪    时间: 2012-7-17 11:13
? 通配符,也可以理解为占位符。
泛型的限定:
? extends E: 可以接收E类型或者E的子类型,上限。
? super E: 可以接收E类型或者E的父类型,下限
作者: 樊佰轩    时间: 2012-7-17 11:53
可以肯定的是你的后两种写法是错误的。
在第一种写法中,T代表的是Comparable和它的子类类型,而传入的参数也是Comparable和它的子类类型。
由于不知道如何添加图片,测试截图不能上传,你可以自己测试,




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