Maison > Java > javaDidacticiel > Java Reflection peut-il récupérer les types de paramètres génériques au moment de l'exécution ?

Java Reflection peut-il récupérer les types de paramètres génériques au moment de l'exécution ?

Susan Sarandon
Libérer: 2024-12-17 17:54:10
original
577 Les gens l'ont consulté

Can Java Reflection Retrieve Generic Parameter Types at Runtime?

Récupération des types de paramètres génériques via Java Reflection

En Java, les développeurs peuvent rencontrer le besoin d'obtenir le type spécifique d'un paramètre générique au moment de l'exécution . Cette question explore comment réaliser cette tâche courante à l'aide de la réflexion Java.

Question :

Est-il possible de récupérer le type spécifique d'un paramètre générique à l'aide de la réflexion Java ?

Scénario :

Considérez le code suivant extrait :

public final class Voodoo {
    public static void chill(List<?> aListWithTypeSpiderMan) {
        // Here I'd like to get the Class-Object 'SpiderMan'
        Class typeOfTheList = ???;
    }

    public static void main(String... args) {
        chill(new ArrayList<SpiderMan>());
    }
}
Copier après la connexion

Réponse :

Oui, obtenir le type d'un paramètre générique avec réflexion est possible. Une approche consiste à utiliser le code suivant :

Class<T> persistentClass = (Class<T>)
   ((ParameterizedType)getClass().getGenericSuperclass())
      .getActualTypeArguments()[0];
Copier après la connexion

Dans ce code, persistentClass représentera l'argument de type réel du type générique, dans ce cas, SpiderMan. Cependant, il est important de noter que les mécanismes de réflexion sous-jacents peuvent être complexes, c'est pourquoi une compréhension approfondie des génériques et de la réflexion Java est recommandée pour une mise en œuvre réussie.

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!

source:php.cn
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