2016-05-03 16 views
1

編譯該行時出現此警告。類型安全性:Class []類型的表達式需要進行未經檢查的轉換以符合類<Animal> []

private static Class<Animal>[] animals = new Class[] { Human.class, Dog.class, Cat.class }; 

這是什麼意思?如何糾正?

+3

你應該使用可能使用'Class <?擴展動物> []'。如果你使用'Class []',你暗示數組中的每個元素都是'Animal.class'。但是,Class <? extends Animal> []'表示數組中的每個元素都是Animal的子類。 – Jeffrey

+1

請勿使用數組。使用「集合」。 –

+2

另請參閱您的選項[這裏](http://stackoverflow.com/questions/897251/how-do-i-use-arrays-of-generic-types-correctly)。 –

回答

0

這意味着,編譯器不知道這個類是否獲得分配給它的Animal類。例如。它不知道Human.class等是Animal.class的子類型。 Class<>[]{Classes...}應該可能工作

相關問題