So erhalten Sie den generischen Typ einer java.util.List
Um den generischen Typ einer bestimmten java.util.List abzurufen kann man Reflexionstechniken anwenden, wenn die genannten Listeninstanzen Felder innerhalb einer Klasse sind. So geht's:
// Declare fields of type List<String> and List<Integer> List<String> stringList = new ArrayList<>(); List<Integer> integerList = new ArrayList<>(); public static void main(String[] args) throws Exception { Class<Test> testClass = Test.class; // Obtain the Field object of the stringList field Field stringListField = testClass.getDeclaredField("stringList"); // Determine the generic type of stringList using ParameterizedType ParameterizedType stringListType = (ParameterizedType) stringListField.getGenericType(); // Retrieve the actual type argument (i.e., generic type) of stringListType Class<?> stringListClass = stringListType.getActualTypeArguments()[0]; System.out.println(stringListClass); // class java.lang.String // Perform the same process for the integerList field Field integerListField = testClass.getDeclaredField("integerList"); ParameterizedType integerListType = (ParameterizedType) integerListField.getGenericType(); Class<?> integerListClass = integerListType.getActualTypeArguments()[0]; System.out.println(integerListClass); // class java.lang.Integer }
Dieser Ansatz ist auch auf Parametertypen und Rückgabetypen von Methoden anwendbar. Es ist jedoch wichtig zu beachten, dass keine Notwendigkeit besteht, Reflektion zu verwenden, wenn sich die List-Instanzen im Bereich der Klasse oder Methode befinden, in der sie benötigt werden, da die generischen Typen explizit deklariert werden.
Das obige ist der detaillierte Inhalt vonWie erhalte ich den generischen Typ einer java.util.List mithilfe von Reflection?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!