Maison >Java >javaDidacticiel >Comment obtenir les noms et types de paramètres de méthode à l'aide de Java Reflection ?

Comment obtenir les noms et types de paramètres de méthode à l'aide de Java Reflection ?

DDD
DDDoriginal
2024-11-08 11:55:01301parcourir

How to Get Method Parameter Names and Types Using Java Reflection?

Obtention des noms de paramètres de méthode via Java Reflection

Problème :

Étant donné une classe Java avec une méthode qui accepte des paramètres, comment pouvez-vous déterminer le nom et le type du paramètre à l'aide de Java réflexion ?

Solution :

Dans Java 8 et versions ultérieures, la classe Parameter donne accès aux noms de paramètres. Pour obtenir des informations sur les paramètres :

import java.lang.reflect.Method;
import java.lang.reflect.Parameter;

public class ParameterNames {

    public static void getParameterNames(Method method) {
        Parameter[] parameters = method.getParameters();

        for (Parameter parameter : parameters) {
            System.out.printf("Parameter name: %s, Type: %s%n", parameter.getName(), parameter.getType().getName());
        }
    }

    public static void main(String[] args) {
        try {
            Method method = Whatever.class.getMethod("aMethod", int.class);
            getParameterNames(method);
        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        }
    }

    public static class Whatever {
        public void aMethod(int aParam) {
        }
    }
}

Sortie :

Parameter name: aParam, Type: int

Remarque importante :

Pour que cela fonctionne, vous devez spécifier le -parameters lors de la compilation de votre code Java. Par exemple, pour les utilisateurs Maven :

<configuration>
    <parameters>true</parameters>
    <compilerArgument>-parameters</compilerArgument>
</configuration>

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