泛型
JDK1.5后出现的新特性,用于解决安全问题al.add("sdf");
al.add(4);
ArrayList<String> al = new ArrayList<String>();
好处1:将运行时期出现的问题转移到了编译时期,方便于程序员解决问题,运行时期问题减少
Iterator<String> it = al.Iterator();
String s = (String) it.next();
就不用强制类型转换
class Len implements Comparator<>
当类中要操作的引用数据类型不确定时,使用泛型
泛型限定:
ArrayList<Student> al = new ArrayList<Person>();
ArrayList<Person> al = new ArrayList<Student>();
两边类型必须匹配,以上错误
泛型限定,只接受Person及其子类
ArrayList<? extends Person>
?通配符,也可以理解为占位符
泛型的限定
? extends E;可以接受E类型或E类型的子类型 上限限定
? super E ;可以接受E类型或者E的父类型 下限限定