En Java, les noms de paramètres de méthode ne sont pas accessibles par défaut, ce qui amène à se demander s'il est possible de les récupérer via la réflexion .
Avant Java 8, il n'était pas possible d'accéder aux noms de paramètres via la réflexion. Cependant, avec l’introduction de la réflexion des paramètres dans Java 8, cela est devenu possible. Le code suivant montre comment obtenir les noms de paramètres :
import java.lang.reflect.Method; import java.lang.reflect.Parameter; public class ParameterReflection { public static void main(String[] args) { Class<?> clazz = Whatever.class; Method[] methods = clazz.getDeclaredMethods(); for (Method method : methods) { if (method.getName().equals("aMethod")) { Parameter[] parameters = method.getParameters(); for (Parameter parameter : parameters) { System.out.println(parameter.getName()); } break; } } } }
Dans cet exemple, la classe Whatever contient une méthode aMethod avec un paramètre entier nommé aParam. En utilisant la méthode method.getParameters(), vous pouvez récupérer un tableau d'objets Parameter représentant chaque paramètre de la méthode, ainsi que leurs noms.
C'est important à noter que Java 8 nécessite l'activation de l'indicateur -parameters du compilateur pour rendre les noms de paramètres accessibles au moment de l'exécution. Dans les projets Maven, cet indicateur peut être ajouté au paramètre
<compilerArgument>-parameters</compilerArgument>
Alternativement, dans les versions Java 8 du compilateur plus récentes que 3.6.2, vous pouvez définir les paramètres sur true dans
<parameters>true</parameters>
Avec l'introduction de la réflexion des paramètres dans Java 8, l'obtention des noms de paramètres de méthode via la réflexion est désormais possible. En utilisant la classe Parameter et l'indicateur du compilateur -parameters, vous pouvez accéder aux noms des paramètres au moment de l'exécution.
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!