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
Libérer: 2024-12-28 11:12:12
original
663 Les gens l'ont consulté

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
    }
}
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal