


Wie funktioniert das Schlüsselwort „super' von Java Generics mit begrenzten Platzhaltern und welche Einschränkungen hat es?
Super-Schlüsselwort von Java Generics: Verwendung und Einschränkungen verstehen
Generika erweitern die Leistungsfähigkeit von Java-Sammlungen, indem sie die Anpassung von Datentypen ermöglichen Einbußen bei der Typensicherheit. Das Schlüsselwort super spielt in diesen generischen Sammlungen eine entscheidende Rolle.
Begrenzte Platzhalter verstehen
Bei der Deklaration einer generischen Sammlung kann das Schlüsselwort super mit begrenzten Platzhaltern verwendet werden. Mit diesem Platzhaltertyp kann eine Sammlung einen bestimmten Typ oder seine Supertypen enthalten. Zum Beispiel:
List<? super Number> list = null;
Diese Deklaration bedeutet, dass die Liste Number-Objekte oder jede ihrer Superklassen, wie z. B. Object, enthalten kann.
Elemente zu begrenzten Wildcard-Sammlungen hinzufügen
Es ist wichtig zu beachten, dass das Hinzufügen von Elementen zu begrenzten Platzhaltersammlungen strengen Typsicherheitsregeln unterliegt. Im obigen Beispiel:
- list.add(new Integer(0)) ist gültig, weil Integer Number erweitert.
- list.add(new Object()) ist ungültig, weil Object ist kein Subtyp von Number.
Testen der Grenzen von Super Platzhalter
Entgegen den Erwartungen lässt sich der folgende Code nicht kompilieren:
static void test(List<? super Number> param) { param.add(new Integer(2)); } public static void main(String[] args) { List<String> sList = new ArrayList<String>(); test(sList); // Compile error }
Während String ein Untertyp von Object und Object ein Supertyp von Number ist, schlägt dieser Code immer noch fehl kompilieren. Der Grund dafür ist, dass der Platzhalter den spezifischen Typ Number (wie in List super Number> definiert) und seine Supertypen erfasst, was String ausschließt.
Warum erlaubt Java super T> Aber nicht
Der Grund, warum Java keine Platzhalter mit niedrigerer Grenze zulässt (z. B. ), liegt im Typsystem von Java. Platzhalter mit niedrigeren Grenzen würden die Erstellung von Sammlungen ermöglichen, die jeden Supertyp eines bestimmten Typs enthalten könnten, was möglicherweise zu unsicherer Umwandlung und Typverletzungen führen könnte.
Zusammenfassend lässt sich sagen, dass das Schlüsselwort super in Java-Generika die Erstellung von Generic ermöglicht Sammlungen, die Objekte eines bestimmten Typs oder seiner Supertypen enthalten können. Es ist wichtig, die Typsicherheitseinschränkungen im Zusammenhang mit begrenzten Platzhaltern zu verstehen, um die Gültigkeit und Korrektheit Ihres Java-Codes sicherzustellen.
Das obige ist der detaillierte Inhalt vonWie funktioniert das Schlüsselwort „super' von Java Generics mit begrenzten Platzhaltern und welche Einschränkungen hat es?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen











Fehlerbehebung und Lösungen für die Sicherheitssoftware des Unternehmens, die dazu führt, dass einige Anwendungen nicht ordnungsgemäß funktionieren. Viele Unternehmen werden Sicherheitssoftware bereitstellen, um die interne Netzwerksicherheit zu gewährleisten. ...

Lösungen zum Umwandeln von Namen in Zahlen zur Implementierung der Sortierung in vielen Anwendungsszenarien müssen Benutzer möglicherweise in Gruppen sortieren, insbesondere in einem ...

Die Verarbeitung von Feldzuordnungen im Systemdocken stößt häufig auf ein schwieriges Problem bei der Durchführung von Systemdocken: So kartieren Sie die Schnittstellenfelder des Systems und ...

Beginnen Sie den Frühling mit der Intellijideaultimate -Version ...

Bei Verwendung von MyBatis-Plus oder anderen ORM-Frameworks für Datenbankvorgänge müssen häufig Abfragebedingungen basierend auf dem Attributnamen der Entitätsklasse erstellt werden. Wenn Sie jedes Mal manuell ...

Konvertierung von Java-Objekten und -Arrays: Eingehende Diskussion der Risiken und korrekten Methoden zur Konvertierung des Guss-Typs Viele Java-Anfänger werden auf die Umwandlung eines Objekts in ein Array stoßen ...

Detaillierte Erläuterung des Designs von SKU- und SPU-Tabellen auf E-Commerce-Plattformen In diesem Artikel werden die Datenbankdesignprobleme von SKU und SPU in E-Commerce-Plattformen erörtert, insbesondere wie man mit benutzerdefinierten Verkäufen umgeht ...

Wie erkennt die Redis -Caching -Lösung die Anforderungen der Produktranking -Liste? Während des Entwicklungsprozesses müssen wir uns häufig mit den Anforderungen der Ranglisten befassen, z. B. das Anzeigen eines ...
