Maison >Java >javaDidacticiel >Comment puis-je récupérer le type générique d'une liste Java à l'aide de Reflection ?
Lorsque vous travaillez avec des types génériques en Java, il peut être utile de récupérer la classe spécifique associée à un type générique. Prenons l'exemple suivant :
List<String> stringList = new ArrayList<String>(); List<Integer> integerList = new ArrayList<Integer>();
Dans ce scénario, nous souhaiterons peut-être accéder aux types de classe réels associés à ces listes, à savoir String et Integer. Heureusement, Java fournit un moyen de récupérer ces informations en utilisant la réflexion.
En utilisant la méthode getDeclaredField, nous pouvons accéder au champ dans une classe qui contient la liste générique. À partir de là, nous pouvons obtenir le ParameterizedType du champ et extraire les informations de classe réelles. Voici un exemple :
Field stringListField = testClass.getDeclaredField("stringList"); ParameterizedType stringListType = (ParameterizedType) stringListField.getGenericType(); Class<?> stringListClass = (Class<?>) stringListType.getActualTypeArguments()[0];
Ce code attribue la classe
Si les listes sont définies dans le cadre d'une méthode, il n'est pas nécessaire de récupérer leur générique types explicitement. En effet, les informations de type sont facilement disponibles dans le contexte de la méthode.
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!