Java では、デフォルトではメソッド パラメータ名にアクセスできないため、リフレクションを使用してメソッド パラメータ名を取得できるかどうかという疑問が生じます。 .
Java 8 より前では、リフレクションを介してパラメータ名にアクセスすることは不可能でした。しかし、Java 8 でパラメータリフレクションが導入されたことで、それが可能になりました。次のコードは、パラメーター名を取得する方法を示しています。
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; } } } }
この例では、Whatever クラスに、 という名前の整数パラメーターを持つ aMethod メソッドが含まれています。 aParam。 Method.getParameters() メソッドを使用すると、メソッドの各パラメータを表す Parameter オブジェクトの配列とその名前を取得できます。
これは重要ですJava 8 では、実行時にパラメータ名にアクセスできるようにコンパイラ フラグ -parameters を有効にする必要があることに注意してください。 Maven プロジェクトでは、このフラグを
<compilerArgument>-parameters</compilerArgument>
また、3.6.2 より新しい Java 8 バージョンのコンパイラでは、
<parameters>true</parameters>
以上がJava 8 でリフレクションを使用して Java メソッドのパラメータ名を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。