ホームページ  >  記事  >  Java  >  Java リフレクションはメソッドのパラメータ名を取得できますか?

Java リフレクションはメソッドのパラメータ名を取得できますか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-10 06:00:03951ブラウズ

Can Java Reflection Retrieve Method Parameter Names?

Java リフレクション: メソッド パラメータ名へのアクセス

質問:

Java リフレクションはメソッド パラメータ名に関する情報を提供できますか?

答え:

はい、Java 8 では、リフレクションを使用してメソッドのパラメーター名を取得する機能が導入されています。

実装:

import java.lang.reflect.Method;
import java.lang.reflect.Parameter;
import java.util.ArrayList;
import java.util.List;

public class ParameterNames {

    public static List<String> getParameterNames(Method method) {
        if (!method.isParameterNamesPresent()) {
            throw new IllegalArgumentException("Parameter names are not present!");
        }

        Parameter[] parameters = method.getParameters();
        List<String> parameterNames = new ArrayList<>();

        for (Parameter parameter : parameters) {
            parameterNames.add(parameter.getName());
        }

        return parameterNames;
    }

    // For testing
    public static void main(String[] args) throws Exception {
        Method getParameterNamesMethod = ParameterNames.class.getMethod("getParameterNames", Method.class);
        List<String> parameterNames = getParameterNames(getParameterNamesMethod);
        System.out.println("Method parameter names: " + parameterNames);
    }
}

使用法:

aParam という名前の単一パラメーターを持つ aMethod という名前のメソッドの場合、getParameterNames メソッドは ["aParam"] を返します。

追加情報:

  • クラス ファイルにパラメーター名を生成するには、Maven コンパイラー プラグインで -parameters フラグを使用してコンパイルするか、parameterscompiler 引数を true に設定する必要があります。
  • この機能の詳細については、Java 8 リリース ドキュメント「公式 Java チュートリアルのメソッド パラメータの名前の取得」を参照してください。

以上がJava リフレクションはメソッドのパラメータ名を取得できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。