Heim > Java > javaLernprogramm > Wie kann ich ein Klassenliteral für einen generischen Typ in Java erhalten?

Wie kann ich ein Klassenliteral für einen generischen Typ in Java erhalten?

Barbara Streisand
Freigeben: 2024-12-23 22:27:15
Original
1063 Leute haben es durchsucht

How Can I Get a Class Literal for a Generic Type in Java?

Erhalten eines Klassenliterals aus einem generischen Typ in Java

Klassenliterale werden üblicherweise zur statischen Darstellung von Typen verwendet. Beim Umgang mit generischen Typen treten jedoch Schwierigkeiten auf.

Typischerweise können Klassenliterale für nicht generische Typen mithilfe der Syntax Foo.class abgerufen werden. Wenn Sie dies auf generische Typen wie List anwenden, wird aufgrund des Fehlens von Typparametern eine Warnung ausgegeben. Der Versuch, einen Platzhalter (?) hinzuzufügen, um unbekannte Typparameter zuzulassen, führt zu einem Typkonfliktfehler. Darüber hinaus führt die Verwendung der List.class-Syntax zu einem Syntaxfehler.

Das Problem ist auf die Typlöschfunktion von Java zurückzuführen. Generische Typen werden während der Kompilierung in ihre Rohtypen konvertiert, was bedeutet, dass ihre Typargumente zur Laufzeit verloren gehen. Daher fehlt parametrisierten Typen ihre eigene Laufzeitdarstellung und sie verfügen nicht über entsprechende Klassenobjekte.

Daher ist es unmöglich, ein Klassenliteral für einen parametrisierten Typ wie List zu erhalten. mit Methoden wie List.class. Dies liegt daran, dass Java bei der Kompilierung generische Typinformationen eliminiert und nur die Rohtypdarstellung übrig bleibt.

Das obige ist der detaillierte Inhalt vonWie kann ich ein Klassenliteral für einen generischen Typ in Java erhalten?. 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