2016-05-19 5 views
0

ExecutableTypeから、getParameterTypes()を使用してパラメーターのタイプを検査することができます。しかし、私はパラメータ名を調べる仕組みを見つけることができません。注釈プロセッサーからのパラメーター名の検査

私は< = Java 7では、パラメータ名がバイトコードに保持されていないことを理解しています。しかし、私はまだ引数名arg0arg1にアクセスできると期待しています。

コンパイラが-parametersフラグを指定して実行しているJava 8コンパイラの場合、ソースコードから元のパラメータ名を取得することが予想されます。

私は見落としているメカニズムがありますか?注釈処理中にこの情報を取得できない場合は、Parameter.getName()を使用してリフレクションAPIを使用してこれをクエリできます。

答えて

0

ExecutableTypeの代わりにExecutableElementを使用してください。これから、すべての名前を持つべきパラメータを得ることができます。 Types.asElementを使用して変換できます。

+1

ExecutableElementを使用するイベントの型名は常に "arg0"、... – ctron

+0

として返されます。このコメントに遅れて返答してください。 'arg0'、' arg1'などの名前は、あなたがJava 7以前のバージョンでビルドしている場合や '-parameters'フラグのないJava 8の場合、パラメータ名はバイトコードに格納されません。この場合、それらは 'arg0'、' arg1'などとして表示されます。 – jbunting

関連する問題