Heim > Java > javaLernprogramm > Was bedeutet „? erweitert HasWord' in Java Generics?

Was bedeutet „? erweitert HasWord' in Java Generics?

Mary-Kate Olsen
Freigeben: 2024-11-28 11:12:11
Original
349 Leute haben es durchsucht

What Does

Verstehen des Fragezeichens in Java-Generika-Typparametern

In Java-Generika stoßen Sie möglicherweise auf Typparameter mit Fragezeichen, wie zum Beispiel „? erweitert“. HasWord". Diese Syntax gibt einen begrenzten Platzhaltertyp an. Lassen Sie uns seine Bedeutung genauer untersuchen:

„? erweitert HasWord“ bedeutet, dass der Parameter eine Klasse oder Schnittstelle darstellt, die HasWord erweitert. Es umfasst HasWord selbst sowie alle seine Unterklassen. Mit anderen Worten, es lässt jeden Typ zu, der die Bedingung „instanceof HasWord“ erfüllt oder null akzeptiert.

Dieses Konzept stammt aus Punkt 31 von Effective Java 3rd Edition, „Verwenden Sie begrenzte Platzhalter, um Flexibilität und Sicherheit zu erhöhen“. Im Wesentlichen erweitert ein begrenzter Platzhalter die akzeptablen Typen über das hinaus, was ein nicht parametrisierter Typ akzeptieren könnte.

Wenn beispielsweise eine Methodensignatur eine Liste erfordert, wird durch die Übergabe einer Liste wäre nicht erlaubt. Wenn die Signatur jedoch List, wäre die ChildOfHasWord-Liste akzeptabel.

Der subtile Unterschied zwischen „? erweitert HasWord“ und „? super HasWord“ ist ebenfalls erwähnenswert. Ersteres eignet sich, wenn Sie eine Sammlung benötigen, aus der Daten abgerufen werden, während letzteres für Sammlungen geeignet ist, in denen Daten hinzugefügt werden. Diese Richtlinie wird oft als „PEGS“ bezeichnet: Producer-extends, Consumer-super.

Zusammenfassend lässt sich sagen, dass das Fragezeichen in Java-Generics-Typparametern „? erweitert HasWord“ einen begrenzten Platzhaltertyp anzeigt, der darstellt Jede Klasse oder Schnittstelle, die HasWord erweitert und mehr Flexibilität und verbesserte Typsicherheit bietet. Wenn Sie dieses Konzept verstehen, verbessern Sie Ihr Verständnis der Java-Generika und können das Code-Design im Hinblick auf Effizienz und Wartbarkeit optimieren.

Das obige ist der detaillierte Inhalt vonWas bedeutet „? erweitert HasWord' in Java Generics?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage