Maison >Java >javaDidacticiel >Comment obtenir le type générique d'un java.util.List à l'aide de Reflection ?
Comment obtenir le type générique d'une java.util.List
Pour récupérer le type générique d'une java.util.List donnée , on peut employer des techniques de réflexion lorsque lesdites instances de liste sont des champs au sein d'une classe. Voici comment procéder :
// 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 }
Cette approche est également applicable aux types de paramètres et aux types de retour de méthodes. Cependant, il est important de noter que si les instances List sont dans la portée de la classe ou de la méthode où elles sont requises, il n'est pas nécessaire d'utiliser la réflexion car les types génériques sont explicitement déclarés.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!