2017-03-04 7 views
2

メソッドのパラメータ名を取得するには、asm 5.2を使用する必要があります。私のソースはJava 1.8です。 MethodVisitor#visitParameterのjavadocを見ると、これは私が必要とするものであると思われます。visitVisitorのvisitパラメータが呼び出されない

このメソッドのパラメータを訪問します。

しかし、このメソッドは呼び出されません。私はそれがデバッグ情報の欠落に関連しているかもしれないと思ったので、私は-g:source,lines,varsでクラスをコンパイルしましたが、これも役に立たなかった。

私はvisitLocalVariableを使用していましたが、私が書いているユーティリティの目的では、メソッドのコードは気にしないので、ClassReader.SKIP_CODEをClassReaderのacceptメソッドに提供することを検討していました。

私には何か不足していますか?コードを訪れることなくパラメータ名を取得する方法はありますか?

答えて

2

-parametersオプションを使用してクラスをコンパイルする必要があります。javacにはパラメータ名が含まれています。これは、パラメータ名が含まれていないオプションを指定しない限り、メソッドが呼び出されない理由です。

また、パラメータ名としてthe visitLocalVariable methodを確認することもできます。デバッグシンボルが含まれる非抽象メソッドの場合は、パラメータ名がここに含まれます。

+0

'-parameters'オプションがありました、ありがとう! – yasko

関連する問題