41

Java 8 には、Reflection API を使用してメソッドのパラメーター名を取得する機能があります。

  1. これらのメソッド パラメータ名を取得するにはどうすればよいですか?

  2. 私の知る限り、クラスファイルには正式なパラメーター名は保存されません。リフレクションを使用してこれらを取得するにはどうすればよいですか?

4

4 に答える 4

7

Paranamer lib ( https://github.com/paul-hammant/paranamer )を使用できます。

私のために働くサンプルコード:

import com.thoughtworks.paranamer.AnnotationParanamer;
import com.thoughtworks.paranamer.BytecodeReadingParanamer;
import com.thoughtworks.paranamer.CachingParanamer;
import com.thoughtworks.paranamer.Paranamer;

Paranamer info = new CachingParanamer(new AnnotationParanamer(new BytecodeReadingParanamer()));

Method method = Foo.class.getMethod(...);
String[] parameterNames = info.lookupParameterNames(method);

Maven を使用する場合は、この依存関係を pom.xml に入れます。

<dependency>
    <groupId>com.thoughtworks.paranamer</groupId>
    <artifactId>paranamer</artifactId>
    <version>2.8</version>
</dependency>
于 2016-04-29T04:25:05.910 に答える
6

intellij 13のメソッド パラメーターに関する情報を保存する (リフレクション経由で使用可能) に従って、Eclipse IDE 内の "javac -parameters" に相当するのは、ウィンドウ -> 設定 -> Java - >コンパイラ。

于 2015-08-19T21:09:21.813 に答える