Accès aux noms de paramètres de méthode dans Java Reflection
Introduction :
En programmation Java, cela peut être utile pour connaître les noms des paramètres de méthode au sein d’une classe. Ces informations sont utiles dans divers scénarios, tels que le débogage, la journalisation ou l'analyse des dépendances de code. Dans cet article, nous explorerons comment obtenir les noms de paramètres de méthode à l'aide de la réflexion Java.
Méthode getParameterNames() dans Java 8 :
Dans Java 8 et les versions ultérieures, le java La classe .lang.reflect.Parameter fournit la méthode getParameterNames(). Cette méthode nous permet de récupérer un tableau d'objets String contenant les noms de tous les paramètres d'une méthode donnée. Pour utiliser cette méthode, nous devons d'abord obtenir un objet Method représentant la méthode en question.
Exemple de code :
Le code suivant montre comment utiliser getParameterNames() pour obtenir le paramètre noms pour la méthode aMethod() :
import java.lang.reflect.Method; import java.lang.reflect.Parameter; public class GetParameterNames { public static void main(String[] args) throws NoSuchMethodException { // Get the Method object for aMethod() Method aMethod = Whatever.class.getMethod("aMethod", int.class); // Get the Parameter object for the method parameter Parameter[] parameters = aMethod.getParameters(); // Extract the parameter name from the Parameter object String parameterName = parameters[0].getName(); // Print the parameter name System.out.println(parameterName); } }
Considérations :
Pour Pour que cette approche fonctionne, le compilateur Java doit être invoqué avec l'argument -parameters pour permettre la génération de noms de paramètres dans les fichiers de classe. Cet argument peut être ajouté aux indicateurs du compilateur dans le JDK ou dans une configuration de build Maven.
Alternatives pour les anciennes versions de Java :
Dans les versions Java antérieures à 8, obtention du paramètre de méthode les noms directement ne sont pas pris en charge. Cependant, il existe des bibliothèques tierces, telles que ASM Bytecode Manipulation Library, qui fournissent des moyens d'améliorer les classes Java au moment de l'exécution et d'accéder à ces informations.
Ressources supplémentaires :
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!