Java

Java - 泛型 ( Generic )
    > 泛型的特点
        > 解决元素存储的安全性问题
        > 解决获取数据元素时,需要类型强转的问题
        > 不能在 static 方法中使用泛型,因为泛型是抽象化的,只有在创建对象时才会确定泛型的类型,而静态方法是编译时生成的
    > 泛型的使用
        > 在集合中使用泛型
        > 自定义泛型类、泛型接口、泛型方法
        > 泛型与继承的关系
        > 通配符
 
1、自定义泛型类
 
public class order<T> {
    private String orderName;
    private T t;
    List<T> list = new ArrayList<T>();
    public T getT() { return t; }
    public void setT(T t) { this.t = t; }
}
 
2、泛型与继承的关系
    若类A 是类B的子类,那么List<A>就不是List<B> 的子接口
 
3、通配符 ?
    > List<? extends E>  // 这里的通配符说明可以存放的数据类型为E或者为E的子类
    > List<? super E>      // 这里的通配符说明可以存放的数据类型为E或者为E的父类
    List<?> list = null;
    List<Object> list1 = new ArrayList<Object>();
    list = list1;
    List<String> list2 = new ArrayList<String>();
    list = list2;
原文地址:https://www.cnblogs.com/kafeibuku/p/4988267.html