理解Java泛型

来源:互联网 发布:windows10改mac地址 编辑:程序博客网 时间:2024/05/22 14:38

理解<T extends Comparable<T>>

// 理解 <T extends Comparable<T>>// 理解 <T extends Comparable<? super T>>

对 T extends Comparable 的理解:
1. T 必须实现 Comparable 接口,(并且这个接口类型是T)
2. 需要给接口的抽象方法 compareTo 的参数类型为 T,也即是 compareTo(T t)
比如 String implements Comparable<String>,compareTo(String obj)

理解<T extends Comparable<? super T>>

对 <T extends Comparable<? super T>> 类型参数的理解1. T 必须实现 Comparable 接口,(并且这个接口类型是 T 或者任一父类类型)2. 需要给接口的抽象方法 compareTo 的参数类型为 T 或者其父类类型,也即是 compareTo(T t) 或者 compareTo(? super T)比如 Dog implements Comparable<Dog>    或者    Animal implements Comparable<Animal>    Dog extends Animal
// 示例代码

泛型类型推导失效的情况

 Comparator<Integer> reverse = new Comparator<Integer>(){     @Override     public int compare(Integer obj1, Integer obj2){ return obj2 - obj1; } };

右侧的 Integer 是不可以省略的。

原创粉丝点击