Heim > Java > javaLernprogramm > Wie instanziiere ich generische Typen in Java zur Laufzeit?

Wie instanziiere ich generische Typen in Java zur Laufzeit?

Linda Hamilton
Freigeben: 2024-11-13 12:12:02
Original
329 Leute haben es durchsucht

How to Instantiate Generic Types in Java at Runtime?

Instanziierung generischer Typen in Java

Obwohl es einfach erscheinen mag, generische Typen in Java zu instanziieren, stellt es eine einzigartige Herausforderung dar. Dieser Artikel untersucht die Feinheiten dieser Aufgabe und bietet eine umfassende Lösung.

Betrachten Sie die folgende Klassendeklaration:

public class Abc<T> {
    public T getInstanceOfT() {
        // Create and return an instance of type T
    }
}
Nach dem Login kopieren

Das Ziel besteht darin, eine Instanz des generischen Typs T innerhalb der Methode zu erstellen getInstanceOfT(). Das Löschen der Typinformationen während der Kompilierung macht es jedoch unmöglich, den tatsächlichen Typ von T anhand des Bytecodes zu bestimmen.

Lösung der Herausforderung

Um dieses Problem zu lösen, müssen wir den tatsächlichen Typ übergeben von T als Laufzeitargument. Dies kann erreicht werden, indem die Klassendeklaration wie folgt geändert wird:

public class Abc<T> {
    public T getInstanceOfT(Class<T> aClass) {
        return aClass.newInstance();
    }
}
Nach dem Login kopieren

Die Methode verwendet jetzt ein Klassenobjekt als Argument, das den tatsächlichen Typ von T darstellt, der instanziiert werden soll. Dadurch können wir Reflektion verwenden, um eine Instanz des gewünschten Typs zu erstellen.

Beachten Sie, dass eine Ausnahmebehandlung erforderlich ist, um etwaige Fehler während der Instanziierung zu verwalten.

Fazit

Instanziierung generischer Typen In Java geht es darum, die tatsächlichen Typinformationen zur Laufzeit zu übergeben, da diese nicht aus dem Bytecode abgeleitet werden können. Durch die Verwendung des Klassenobjekts und der Reflexion ist es möglich, Instanzen generischer Typen dynamisch zu erstellen.

Das obige ist der detaillierte Inhalt vonWie instanziiere ich generische Typen in Java zur Laufzeit?. 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