2010-03-24 59 views

回答

19

嘗試setSuperClassList(List<? extends Superclass>)

另請檢查PECS以查看是否應該使用? extends? super

+1

+1提及佩奇。 :-) –

+0

同意 - 感謝您的鏈接 –

1

它不會編譯,因爲java.util.List不是covariant

嘗試setSuperClassList(List<? extends Superclass>)來代替。

5

你只是在做泛型有點不對。添加? extends位,這將允許傳入的列表包含SuperClass或其任何子類。

setSuperClassList(List<? extends Superclass>) 

這被稱爲設置泛型的上界。

聲明List<Superclass>表示該列表只能包含SuperClass。這不包括任何子類。

0

做:

setSuperClassList(List<? extends Superclass> list) 

這將使超類的任何子類的列表。