泛型是编译期检查的,只要引用类型绝对匹配就ok,至于里面是否是子类型,那是运行时检查的,所以可以操作子类,但不能是子类型的引用,
ArrayList<Animal> list = new ArrayList<Animal>();
Animal animal = new Animal();
Animal cat = new Cat();
Cat cat2 = new Cat();
list.add(animal);//ok
list.add(cat);//ok
list.add(cat2);//complile error
希望我的回答能够帮助到您。您对我的回答是否感到满意呢?如果满意的话,请回复一下非常感谢!
|