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
Libérer: 2024-11-08 11:55:01
original
374 Les gens l'ont consulté

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

Sortie :

Parameter name: aParam, Type: int
Copier après la connexion

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

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