問題:
給定一個帶有接受參數的方法的Java類,如何使用Java 反射來確定參數的名稱和類型?
解決方案:
在 Java 8 及更高版本中,Parameter 類別提供對參數名稱的存取。要取得參數資訊:
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) { } } }
輸出:
Parameter name: aParam, Type: int
重要提示:
要使其工作,您需要指定-parameters編譯Java 程式碼時的參數。例如,對於 Maven 使用者:
<configuration> <parameters>true</parameters> <compilerArgument>-parameters</compilerArgument> </configuration>
以上是如何使用Java反射取得方法參數名稱和類型?的詳細內容。更多資訊請關注PHP中文網其他相關文章!