Heim >Java >javaLernprogramm >Kann Reflection generische Parametertypen in Java aufdecken?
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!