Javaでは、メソッドで使用されるフィールドを取得するにはどうすればよいですか?Java:メソッドで使用されるリストフィールド
基本的には、this one in .NETと同じ質問です。クラスのフィールドをリストするのではなく、クラスの特定のメソッドで使用されているフィールドをリストすることはできません。
例:
public class A {
int a;
int b;
public int bob(){
return a-b;
}
私はこのようなフィールドを取得したい:私は、標準のリフレクションを使用して、任意の解決策を見つけられませんでしたfields[0]=A.a
とfields[1]=A.b
ようにするため
Fields[] fields = FieldReader.(A.class.getMethod("bob"));
を。あなたはASMのようなバイトコード操作ライブラリは行く方法だと思いますか?
あなたはこれをやりたい理由について少し説明できますか?あなたが文脈を説明することができれば、より簡単な方法があるようです。 – sprinter
これは研究目的であり、コンパレータで使用されるフィールドをリストアップする必要があります。 – Julien
http://asm.ow2.org/asm50/javadoc/user/org/objectweb/asm/MethodVisitor.html、より具体的な 'visitFieldInst'メソッドを使用できます。 ASMのマニュアルを見て、それは良い出発点です。 – Grzesuav