Maison >Java >javaDidacticiel >Comment déterminer le type générique d'un objet « Liste » Java ?

Comment déterminer le type générique d'un objet « Liste » Java ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-28 11:12:12622parcourir

How to Determine the Generic Type of a Java `List` Object?

Comment récupérer le type générique d'une java.util.List

En Java, les génériques permettent aux collections de stocker des éléments d'un type spécifique , tel que List ou Liste. Parfois, il devient nécessaire de déterminer le type générique d'une liste.

Une approche pour récupérer le type générique implique la réflexion, comme le démontre le code suivant :

import java.lang.reflect.Field;
import java.lang.reflect.ParameterizedType;
import java.util.ArrayList;
import java.util.List;

public class Test {

    List<String> stringList = new ArrayList<>();
    List<Integer> integerList = new ArrayList<>();

    public static void main(String... args) throws Exception {
        Class<Test> testClass = Test.class;

        Field stringListField = testClass.getDeclaredField("stringList");
        ParameterizedType stringListType = (ParameterizedType) stringListField.getGenericType();
        Class<?> stringListClass = (Class<?>) stringListType.getActualTypeArguments()[0];
        System.out.println(stringListClass); // class java.lang.String

        Field integerListField = testClass.getDeclaredField("integerList");
        ParameterizedType integerListType = (ParameterizedType) integerListField.getGenericType();
        Class<?> integerListClass = (Class<?>) integerListType.getActualTypeArguments()[0];
        System.out.println(integerListClass); // class java.lang.Integer
    }
}

Cette technique peut être utilisé pour obtenir le type générique des champs, les types de paramètres et les types de retour des méthodes. Cependant, il est important de noter que si le type générique se trouve dans la même portée où il est déclaré, il n'est pas nécessaire de le récupérer puisqu'il est déjà connu.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn