Heim >Java >javaLernprogramm >Kann Reflection generische Parametertypen in Java aufdecken?

Kann Reflection generische Parametertypen in Java aufdecken?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-22 11:27:11922Durchsuche

Can Reflection Reveal Generic Parameter Types in Java?

Abrufen generischer Parametertypen über Reflektion in Java

Abfrage: Können wir den Typ eines generischen Parameters mithilfe von Reflektionsverfahren ermitteln?

Bedenken Sie Folgendes Beispiel:

public final class Voodoo {
    public static void chill(List<? extends SpiderMan> aListWithTypeSpiderMan) {
        // Obtain the Class object for 'SpiderMan'
        Class typeOfTheList = ???;
    }

    public static void main(String... args) {
        chill(new ArrayList<SpiderMan>());
    }
}

Lösung:

Ein vielversprechender Ansatz zum Extrahieren des generischen Parametertyps ist wie folgt:

Class<T> persistentClass = (Class<T>)
   ((ParameterizedType)getClass().getGenericSuperclass())
      .getActualTypeArguments()[0];

Diese eher geheimnisvolle, auf Reflexion basierende Beschwörung scheint zu sein liefern uns das gewünschte Ergebnis, aber ein tieferes Verständnis seiner Feinheiten entzieht sich mir vorerst.

Das obige ist der detaillierte Inhalt vonKann Reflection generische Parametertypen in Java aufdecken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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