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!