2010-03-24 4 views

Antwort

19

Versuchen Sie setSuperClassList(List<? extends Superclass>).

Überprüfen Sie auch PECS, um zu sehen, ob Sie ? extends oder ? super verwenden sollten.

+1

+1 für Erwähnung von Pecs. :-) –

+0

einverstanden - danke für den Link –

1

Es wird nicht kompiliert, da java.util.List nicht covariant ist.

Versuchen Sie stattdessen setSuperClassList(List<? extends Superclass>).

5

Sie tun nur die Generika ein bisschen falsch. Fügen Sie das ? extends-Bit hinzu, und das ermöglicht, dass die übergebene Liste die SuperClass oder eine seiner Unterklassen enthält.

setSuperClassList(List<? extends Superclass>) 

Dies wird als Festlegen einer Obergrenze für die Generika bezeichnet. Die Anweisung List<Superclass> besagt, dass die Liste nur SuperClass enthalten kann. Dies schließt alle Unterklassen aus.

0

Sie:

setSuperClassList(List<? extends Superclass> list) 

Dadurch wird eine Liste aller Unterklasse von Superklasse ermöglichen.

Verwandte Themen