看Tutorial的时候发现有这么一句:If you try to sort a list, the elements of which do not implement Comparable, Collections.sort(list) will throw a ClassCastException.
但真正写了一小段代码的时候是根本编译都通不过,再仔细看sort的声明是这样的:
public static <T extends Comparable<? super T>> void sort(List<T> list) {
1、Tutorial上那句话是不是没说对?
2、sort的声明中static到void之间那个<T extends Comparable<? super T>>是什么意思?(不太懂泛型)
但真正写了一小段代码的时候是根本编译都通不过,再仔细看sort的声明是这样的:
public static <T extends Comparable<? super T>> void sort(List<T> list) {
1、Tutorial上那句话是不是没说对?
2、sort的声明中static到void之间那个<T extends Comparable<? super T>>是什么意思?(不太懂泛型)
public int compare(String s1, String s2) {
}
});
意思就是子类实现Comparable接口。该子类类型为T,也就是上面的String
<<effective java 2nd>>,Joshua bloch讲的非常透彻
该泛型T继承了Comparable 而Comparable的泛型为T的父类
2.<T extends Comparable<? super T>> 表示T或者T的所有超类,需要实现Comparable接口
而这个A是你的类的父类或本身
这句话说的Jdk1.4之前,没有泛型的时候