1. ホーム
  2. java

[解決済み] Java リフレクションを使用してメソッドのパラメータ名を取得できますか?

2022-06-06 03:25:22

質問

このようなクラスがあった場合

public class Whatever
{
  public void aMethod(int aParam);
}

を知る方法はあるのでしょうか? aMethod という名前のパラメータを使っていることを知る方法はありますか? aParam という名前の、型が int ?

どのように解決するのですか?

まとめると

  • パラメータ名の取得 は、コンパイル時にデバッグ情報が含まれていれば可能です。参照 この回答 をご覧ください。
  • それ以外の場合、パラメータ名の取得は ではなく 可能
  • パラメータタイプの取得が可能です。 method.getParameterTypes()

エディタのオートコンプリート機能を書くために (コメントの 1 つで述べたように)、いくつかのオプションがあります。

  • 使用する arg0 , arg1 , arg2 など。
  • 使用 intParam , stringParam , objectTypeParam など。
  • を組み合わせて使用します。前者は非プリミティブ型に、後者はプリミティブ型に使用します。
  • 引数名を全く表示せず、型のみを表示する。