爲什麼go
方法給我編譯時異常,即使Animal
是父類Dog
?泛型作爲參數
class Animal{}
class Dog extends Animal{}
class Sample {
void go(ArrayList<Animal> list){}
public static void main(String...args)
{
ArrayList<Dog> list=new ArrayList<Dog>();
new Sample().go(list);
}
}
這給我一個編譯時錯誤爲什麼?
Animal'的'一個可變的列表可以具有在其上進行比Dog'的'一個可變的列表的詳細操作(例如,在插入'Animal's不在'Dog's) ,因此'ArrayList'不是'ArrayList '的有效子類型。 –
Mankarse
@Mankarse:這應該是一個答案。 –
[Is List List 的子類可能的重複?爲什麼不是Java的泛型隱含多態?](http://stackoverflow.com/questions/2745265/is-listdog-a-subclass-of-listanimal-why-arent-javas-generics-implicitly-p) –
Ingo