Heim >Java >javaLernprogramm >Java Generics: Was ist der Unterschied zwischen „?' erweitert T` und `? Super-T`-Wildcards?

Java Generics: Was ist der Unterschied zwischen „?' erweitert T` und `? Super-T`-Wildcards?

DDD
DDDOriginal
2024-12-10 06:11:17868Durchsuche

Java Generics: What's the Difference Between `? extends T` and `? super T` Wildcards?

Java-Generika: Erkunden von Platzhaltern

Dieser Artikel befasst sich mit den Feinheiten generischer Platzhalter in Java und geht auf zwei grundlegende Fragen ein:

  1. 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: 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: 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.
  1. Unterschied zwischen und
  • Liste: 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: 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn