Maison  >  Article  >  Java  >  Java Reflection peut-il récupérer les noms des paramètres de méthode ?

Java Reflection peut-il récupérer les noms des paramètres de méthode ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-10 06:00:03956parcourir

Can Java Reflection Retrieve Method Parameter Names?

Java Reflection : accès aux noms des paramètres de méthode

Question :

La réflexion Java peut-elle fournir des informations sur les noms de paramètres de méthode ?

Réponse :

Oui, Java 8 introduit la possibilité d'obtenir des noms de paramètres de méthode à l'aide de la réflexion.

Implémentation :

import java.lang.reflect.Method;
import java.lang.reflect.Parameter;
import java.util.ArrayList;
import java.util.List;

public class ParameterNames {

    public static List<String> getParameterNames(Method method) {
        if (!method.isParameterNamesPresent()) {
            throw new IllegalArgumentException("Parameter names are not present!");
        }

        Parameter[] parameters = method.getParameters();
        List<String> parameterNames = new ArrayList<>();

        for (Parameter parameter : parameters) {
            parameterNames.add(parameter.getName());
        }

        return parameterNames;
    }

    // For testing
    public static void main(String[] args) throws Exception {
        Method getParameterNamesMethod = ParameterNames.class.getMethod("getParameterNames", Method.class);
        List<String> parameterNames = getParameterNames(getParameterNamesMethod);
        System.out.println("Method parameter names: " + parameterNames);
    }
}

Utilisation :

Pour une méthode nommée aMethod avec un seul paramètre nommé aParam, la méthode getParameterNames renverra ["aParam"].

Informations supplémentaires :

  • La compilation avec l'indicateur -parameters ou la définition de l'argument settingscompiler sur true dans le plugin du compilateur Maven est nécessaire pour générer des noms de paramètres dans le fichier de classe.
  • Le document de la version Java 8, Obtention des noms des paramètres de méthode dans le didacticiel Java officiel, fournit plus de détails sur cette fonctionnalité.

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