Heim > Backend-Entwicklung > C++ > Wie kann ich eine generische Java-Methode mit Laufzeittypargumenten aufrufen?

Wie kann ich eine generische Java-Methode mit Laufzeittypargumenten aufrufen?

Patricia Arquette
Freigeben: 2024-12-30 20:25:10
Original
184 Leute haben es durchsucht

How Can I Invoke a Generic Java Method with Runtime Type Arguments?

Generische Methoden mit Laufzeittypargumenten aufrufen

Problem:

Sie möchten eine generische Methode dynamisch aufrufen, Angabe des Typarguments zur Laufzeit. Java erlaubt jedoch keine direkte Auflösung von Typargumenten in generischen Methodenaufrufen.

Lösung:

Um dies zu erreichen, verwenden Sie Java Reflection:

// Get the generic method
Method<T> method = MyTestClass.class.getMethod("myGenericMethod");

// Create a type array for the type arguments
Type[] typeArguments = { new TypeReference<T>() {}.getType() };

// Make the generic method specific
Method<T> specificMethod = method.makeGenericMethod(typeArguments);

// Invoke the specific method with an instance and parameters
T result = specificMethod.invoke(myInstance, parameters);
Nach dem Login kopieren

Erklärung:

  1. Besorgen Sie sich das Generikum Methode: Verwenden Sie getMethod(), um die generische Methode aus der Klasse abzurufen.
  2. Typ-Array erstellen: Erstellen Sie ein Type[]-Array, um die Typargumente für die generische Methode zu speichern.
  3. Generieren Sie die spezifische Methode: Verwenden Sie makeGenericMethod(), um eine neue Methodeninstanz mit dem angegebenen Typ zu erstellen Argumente.
  4. Aufruf: Rufen Sie die spezifische Methode mit invoke() mit der Instanz und den Parametern auf.

Zusätzliche Hinweise:

  • Sie können newInstance() verwenden, um eine neue Instanz des generischen Typs aus dem zu erstellen Schnittstelle.
  • Reflection ermöglicht die dynamische Auflösung von Typargumenten zur Laufzeit.
  • Generika bieten eine Typprüfung zur Kompilierungszeit, aber Reflection ermöglicht Flexibilität in dynamischen Szenarien.

Das obige ist der detaillierte Inhalt vonWie kann ich eine generische Java-Methode mit Laufzeittypargumenten aufrufen?. 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