問題:
パラメータを受け入れるメソッドを持つ 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
重要な注意事項:
これが機能するには、 Java コードをコンパイルするときの -parameters 引数。たとえば、Maven ユーザーの場合:
<configuration> <parameters>true</parameters> <compilerArgument>-parameters</compilerArgument> </configuration>
以上がJava リフレクションを使用してメソッドのパラメータ名と型を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。