Nehmen wir an, ich habe eine Klasse A, die erweitert werden kann. Innerhalb dieser Klasse A habe ich eine Liste List<A>
. Also wird diese Klasse eine Liste mit Elementen A enthalten. Wenn ich nun eine Unterklasse dieser Klasse B extendiere, möchte ich, dass Klasse B dasselbe Element List<B>
hat, dh die gleiche Liste, aber diesen Typ mit Elementen vom Typ B. Ist dies mit Generics möglich? ? Ich kann etwas wie A <T extends A>
sehen, während ich List<T>
deklariere, aber ich mag es nicht, da die Informationen über den Klassentyp schon da sind. Gibt es eine andere bessere Lösung? Beispiel unten:Geben Sie List den gleichen Typ wie die Klasse, die es enthält
public class A {
List<A> list = new ArrayList<A>();
}
public class B extends A {
}
I Liste will die allgemeine Art von B in der Klasse B.
Es wäre leichter zu verstehen, wenn Sie den Code von A und B geschrieben, anstatt es zu beschreiben. – assylias
erledigt - die Beispiele in der Beschreibung hinzugefügt – user1032285