Java-Generika: Erkunden von Platzhaltern
Dieser Artikel befasst sich mit den Feinheiten generischer Platzhalter in Java und geht auf zwei grundlegende Fragen ein:
- Begrenzt vs. Unbegrenzt Platzhalter
Platzhalter werden durch ein Fragezeichen (?) gefolgt von einer Grenze dargestellt. Ein begrenzter Platzhalter schränkt den Typ des Generikums ein, ein unbegrenzter Platzhalter jedoch nicht.
-
Begrenzte Platzhalter:
- Liste erweitert T>: Dies gibt an, dass die Liste jeden Untertyp von T enthalten kann. Es handelt sich um einen Platzhalter mit Obergrenze, was bedeutet, dass der Typ darauf beschränkt wird, T oder eine seiner Unterklassen zu erweitern.
- Liste super T>: Dies gibt an, dass die Liste jeden Supertyp von T enthalten kann. Es handelt sich um einen Platzhalter mit unterer Grenze, was bedeutet, dass der Typ darauf beschränkt wird, ein Vorfahre von T oder seinen übergeordneten Klassen zu sein.
- Unterschied zwischen erweitert T> und super T>
- Liste erweitert T>: Dieser Typ stellt eine Liste dar, die Objekte vom Typ T oder einer beliebigen Unterklasse von T enthalten kann. Beispielsweise könnte eine Liste mit Elementen vom Typ Hund einer Liste mit diesem Typparameter zugewiesen werden.
- Liste super T>: Dieser Typ stellt eine Liste dar, die Objekte vom Typ T oder einer beliebigen Oberklasse von T enthalten kann. Beispielsweise könnte einer Liste mit diesem Typparameter eine Liste mit Elementen vom Typ Animal zugewiesen werden.
Weiterführende Literatur
Ausführlichere Erläuterungen zu Java-Generika und Platzhaltern finden Sie im Folgenden Ressourcen:
- [Wildcards](https://docs.oracle.com/javase/tutorial/java/generics/wildcards.html)
- [Mehr Spaß mit Platzhalter](https://docs.oracle.com/javase/tutorial/extra/generics/morefunwithwildcards.html)
Das obige ist der detaillierte Inhalt vonJava Generics: Was ist der Unterschied zwischen „?' erweitert T` und `? Super-T`-Wildcards?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!