Java'da, bir yöntemde kullanılan Alanları nasıl alabilirim?Java: bir yöntemde kullanılan liste alanları
Temel olarak, bu this one in .NET ile aynı sorudur. Sınıflardan alan listelemek istemiyorum, ancak sınıfın belirli bir yönteminde kullanılan alanları listelemiyorum.
Örnek:
public class A {
int a;
int b;
public int bob(){
return a-b;
}
böyle alanları almak istiyorum:
Fields[] fields = FieldReader.(A.class.getMethod("bob"));
Böylece
fields[0]=A.a
ve
fields[1]=A.b
Ben standart Yansıma kullanarak herhangi bir çözüm bulamadık. ASM gibi bir bytecode manipülasyon kütüphanesi gitmek için bir yol olduğunu düşünüyor musunuz?
Bunu neden yapmak istediğiniz hakkında biraz bilgi verir misiniz? Bağlamı açıklayabilirseniz daha kolay bir yolu olması muhtemeldir. – sprinter
Bu araştırma amaçlıdır, karşılaştırıcıda kullanılan alanları listelemem gerekiyor. – Julien
http://asm.ow2.org/asm50/javadoc/user/org/objectweb/asm/MethodVisitor.html, daha spesifik 'visitFieldInst' yöntemini kullanabilirsiniz. ASM kılavuzuna bakın, bu iyi bir başlangıç noktasıdır. – Grzesuav