जावा में, मैं किसी विधि में उपयोग किए जाने वाले फ़ील्ड कैसे प्राप्त कर सकता हूं?जावा: किसी विधि में उपयोग किए गए सूची फ़ील्ड
असल में, यह this one in .NET जैसा ही प्रश्न है। मैं कक्षा से खेतों को सूचीबद्ध नहीं करना चाहता, लेकिन कक्षा के किसी दिए गए तरीके में उपयोग किए जाने वाले फ़ील्ड को सूचीबद्ध करना चाहता हूं।
उदाहरण:
public class A {
int a;
int b;
public int bob(){
return a-b;
}
मैं इस तरह खेतों प्राप्त करना चाहते हैं:
Fields[] fields = FieldReader.(A.class.getMethod("bob"));
ताकि fields[0]=A.a
और fields[1]=A.b
मैं नहीं किसी भी समाधान मानक प्रतिबिंब का उपयोग कर मिला। क्या आपको लगता है कि ASM जैसे बाइटकोड मैनिपुलेशन लाइब्रेरी जाने का कोई तरीका है?
क्या आप इस बारे में थोड़ा सा समझा सकते हैं कि आप ऐसा क्यों करना चाहते हैं? यदि आप संदर्भ की व्याख्या कर सकते हैं तो एक आसान तरीका होने की संभावना है। – sprinter
यह अनुसंधान उद्देश्य के लिए है, मुझे तुलनित्र में उपयोग किए जाने वाले फ़ील्ड सूचीबद्ध करने की आवश्यकता है। – Julien
आप http://asm.ow2.org/asm50/javadoc/user/org/objectweb/asm/MethodVisitor.html, अधिक विशिष्ट 'visitFieldInst' विधि का उपयोग कर सकते हैं। एएसएम मैनुअल पर देखो, यह एक अच्छा प्रारंभिक बिंदु है। – Grzesuav