* A:泛型概述
ArrayList<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
* B:泛型好处
* 提高安全性(将运行期的错误转换到编译期)
* 省去强转的麻烦
* C:泛型基本使用
* <>中放的必须是引用数据类型
* D:泛型使用注意事项
* 前后的泛型必须一致,或者后面的泛型可以省略不写(1.7的新特性菱形泛型)
方法泛型:
public<T> void show(T T){
}
静态方法的泛型
public static<T t> void print(){
}
泛型接口:
public interface 接口名<泛型类型>
泛型通配符<?>
* 任意类型,如果没有明确,那么就是Object以及任意的Java类了
* B:? extends E
* 向下限定,E及其子类
addAll()方法 的参数是 addAll(collection<? extends E>) 添加添加 E类型的对象,也可以添加E对象的子类对象
* C:? super E
* 向上限定,E及其父类
TreeSet的构造方法有用到 TreeSet(comparator<? super E>) Student 类的子类可以用Student 的比较类