泛型机制:我在JDK1.5就来了
是一种把类型明确工作,推迟到创建对象,或调用方法时,才去明确的一种机制。
泛型的语法 <引用类型,引用类型…>
泛型的第一个好处:避免了向下转型
泛型:只在编译器有效,在运行期就擦除了
泛型可以加在,类,接口,方法上
使用匿名内部类时就必须明确接口上的泛型,是什么具体类型
创建该类对象时,就必须明确该类上加的泛型,到底是什么具体类型
public static void main(String[] args) {
//使用匿名内部类时就必须明确接口上的泛型,是什么具体类型
new MyInterface<String,String>(){
@Override
public String show(String s) {
return null;
}
};
//创建该类对象时,就必须明确该类上加的泛型,到底是什么具体类型
Son2<Integer, Integer> integerIntegerSon2 = new Son2<>();
}
泛型方法
//泛型方法
public<T> void set(T t){
System.out.println(t);
}
?泛型统配符
ArrayList<?> dogs = new ArrayList<Cat>();
向上限定
ArrayList<? super Animal> objects = new ArrayList<Animal>();
ArrayList<? super Animal> objects2 = new ArrayList<Object>();
向下限定
ArrayList<? extends Animal> objects3 = new ArrayList<Dog>();
ArrayList<? extends Animal> objects4 = new ArrayList<Cat>();
ArrayList<? extends Animal> objects5 = new ArrayList<Animal>();