1. 用法
在容器后添加<Type>,Type可以为类、抽象类、接口。表明容器只能存入Type类或其子类的对象。
2. 设计支持泛型的类,使用<T>表示代型。
public class SelfDefineStack<T>{
LinkedList<T> ll = new LinkedList<T>();
}
2. 通配符
ArrayList peopleList<? extends People>表示是一个People或其子类的泛型,引用指向具体的对象时,可从中取出元素,不能添加元素。因为指向的子类不明。
ArrayList<Man> manList = new ArrayList<Man>();
ArrayList<? extends People> pList = manList;
Man m = pList.get(0);
ArrayList manList<? super Man> 表示Man或其父类的泛型。
可插入Man及其子类,取出时可能会是Object导致强制转换失败。
泛型通配符:?表示任意泛型,取出时只能以Object的形式取出。ArrayList<?>.
3. 泛型转换
子类可以转成父类。
子类泛型不能转成父类泛型。插入的子类不明。
父类泛型可以转成子类泛型。