インタフェースメソッドの引数名をクラスファイルから取得する方法ってないのかな?
JVM仕様の以下の情報から、intarface 以外のメソッドの引数名はデバッグ情報から取得できることがわかります。
- 4.6 Methods の attributes[] の説明から、オプションとして Code (§4.7.3) attribute を取得できることがわかる。
- 4.7.3 The Code Attribute の attributes[] の説明から、デバッグ用のオプションとして LocalVariableTable (§4.7.9) を取得できることがわかる。
- local_variable_table[] の各要素内に name_index, descriptor_index が存在する。
このように、上記の情報から intarface 以外のメソッドの引数名をクラスファイルから取得することが可能なことがわかります。(*1)
しかし、interface の場合、Code attribute が存在しないので、そこから先がたどれない、、、。
いい方法ないかな?
*1:実際にうまくいきます。必要に応じて this を無視する必要がありますが。