Maison > Java > javaDidacticiel > Comment puis-je récupérer les noms des paramètres de méthode à l'aide de Java Reflection ?

Comment puis-je récupérer les noms des paramètres de méthode à l'aide de Java Reflection ?

Susan Sarandon
Libérer: 2024-11-08 19:52:02
original
852 Les gens l'ont consulté

How Can I Retrieve Method Parameter Names Using Java Reflection?

Puis-je obtenir le nom des paramètres de méthode à l'aide de Java Reflection ?

Dans Java antérieur à la version 8, l'obtention des noms de paramètres de méthode n'était pas directement possible par réflexion. Cependant, avec l'introduction de l'API Java Reflection dans la version 8, cette fonctionnalité a été introduite.

Récupération des noms de paramètres dans Java 8

Pour récupérer les noms des paramètres de méthode à l'aide de la réflexion Java 8, vous peut utiliser l'approche suivante :

  1. Obtenir l'objet Method de la méthode en question par réflexion (Method.getMethod() ou Class.getDeclaredMethod()).
  2. Utilisez la méthode getParameters() de l'objet Method pour récupérer un tableau d'objets Parameter.
  3. Vérifiez si les noms de paramètres sont disponibles en appelant isNamePresent() sur chaque objet Paramètre. Sinon, vous ne pouvez pas obtenir les noms des paramètres.
  4. Récupérez les noms des paramètres en appelant getName() sur les objets Parameter.

Exemple de code

Le code suivant montre comment récupérer les noms de paramètres de méthode dans Java 8 :

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

public class MethodParameterNames {

    public static void main(String[] args) {
        try {
            // Get the class object
            Class<?> clazz = Class.forName("Whatever");

            // Get the method object
            Method method = clazz.getMethod("aMethod", int.class);

            // Get the parameter array
            Parameter[] parameters = method.getParameters();

            // Extract and print the parameter names
            for (Parameter parameter : parameters) {
                System.out.println(parameter.getName());
            }
        } catch (ClassNotFoundException | NoSuchMethodException e) {
            e.printStackTrace();
        }
    }
}
Copier après la connexion

Supplémentaire Informations

  • Pour que l'exemple de code ci-dessus fonctionne, vous devez compiler votre code avec l'argument du compilateur -parameters pour activer la conservation des noms de paramètres.
  • La possibilité d'obtenir les noms de paramètres est un fonctionnalité relativement nouvelle, elle peut donc ne pas être prise en charge dans tous les environnements Java. Veuillez vérifier la compatibilité de votre version Java.
  • Pour une documentation détaillée, reportez-vous aux ressources suivantes :

    • [Tutoriel Java : Obtention des noms de méthode Paramètres](https://docs.oracle.com/javase/tutorial/reflect/methodparameterreflection.html#obtainingnames)
    • [Javadoc pour les paramètres Classe](https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Parameter.html)

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