मान लीजिए कि मेरे पास .class फ़ाइल है, क्या मुझे उस कक्षा में शामिल सभी विधियां मिल सकती हैं?क्या मुझे कक्षा के सभी तरीके मिल सकते हैं?
34
A
उत्तर
23
पता करने के लिए के बारे में सभी तरीकों कंसोल में इस बयान का उपयोग करें:
javap java.packagename.classname
उदाहरण: javap java.lang.StringBuffer
49
स्रोत से सीधे: http://java.sun.com/developer/technicalArticles/ALT/Reflection/ फिर मैंने इसे स्वयं निहित करने के लिए संशोधित किया, कमांड लाइन से कुछ भी आवश्यक नहीं है। ;-)
import java.lang.reflect.*;
/**
Compile with this:
C:\Documents and Settings\glow\My Documents\j>javac DumpMethods.java
Run like this, and results follow
C:\Documents and Settings\glow\My Documents\j>java DumpMethods
public void DumpMethods.foo()
public int DumpMethods.bar()
public java.lang.String DumpMethods.baz()
public static void DumpMethods.main(java.lang.String[])
*/
public class DumpMethods {
public void foo() { }
public int bar() { return 12; }
public String baz() { return ""; }
public static void main(String args[])
{
try {
Class c = DumpMethods.class;
Method[] m = c.getDeclaredMethods();
for (int i = 0; i < m.length; i++)
System.out.println(m[i].toString());
} catch (Throwable e) {
System.err.println(e);
}
}
}
5
आप उपयोग कर सकते हैं Reflection API
5
public static Method[] getAccessibleMethods(Class clazz) {
List<Method> result = new ArrayList<Method>();
while (clazz != null) {
for (Method method : clazz.getDeclaredMethods()) {
int modifiers = method.getModifiers();
if (Modifier.isPublic(modifiers) || Modifier.isProtected(modifiers)) {
result.add(method);
}
}
clazz = clazz.getSuperclass();
}
return result.toArray(new Method[result.size()]);
}
संबंधित मुद्दे
- 1. मुझे ग्रहण में कक्षा के संदर्भ कैसे मिल सकते हैं?
- 2. मुझे एमवीसी के स्पष्ट उदाहरण कहां मिल सकते हैं?
- 3. क्या मुझे किसी आइटम (साइटकोर में) में सभी फ़ील्ड मिल सकते हैं?
- 4. मुझे जावाईई पैकेज के स्रोत कहां मिल सकते हैं?
- 5. मुझे अच्छे डोमेन संचालित डिजाइन संसाधन कहां मिल सकते हैं?
- 6. कक्षा कक्षा - उदाहरण बनाम कक्षा के तरीके
- 7. क्या सभी जावा गुणों के तरीके पूरी तरह सिंक्रनाइज़ हैं?
- 8. मुझे हल करने के लिए इस तरह के अभ्यास कहां मिल सकते हैं?
- 9. मुझे सभी आईओएस तत्वों की सूची कहां मिल सकती है?
- 10. मुझे तत्व भारी वेब रूपों के उदाहरण कहां मिल सकते हैं?
- 11. कॉलिंग अभिभावक कक्षा के तरीके
- 12. मुझे दुनिया भर के शहरों/स्थानों के डेटाबेस कहां मिल सकते हैं?
- 13. विस्तार के तरीके क्या हैं?
- 14. फेसबुक ग्राफ एपीआई - क्या मुझे "डिफ़ॉल्ट" फ़ील्ड्स और कुछ मिल सकते हैं?
- 15. क्या मुझे Google मानचित्र API V3 में स्थिर मानचित्र मिल सकते हैं?
- 16. क्या मुझे ASP.NET में निर्देशिका खोजकर्ता से 1000 से अधिक रिकॉर्ड मिल सकते हैं?
- 17. मुझे चार्ट के लिए बहुत से अलग-अलग रंग कहां मिल सकते हैं?
- 18. थ्रेडिंग की मूल बातें सीखने के लिए मुझे कुछ अच्छे उदाहरण कहां मिल सकते हैं?
- 19. मुझे अपने पर्ल से संबंधित प्रश्नों के अच्छे उत्तर कहां मिल सकते हैं?
- 20. कक्षा के तरीके कक्षा के उदाहरणों के आकार में वृद्धि करते हैं?
- 21. कस्टम एसक्यूएल के साथ प्रोपेल ऑब्जेक्ट्स हाइड्रेट करते समय मुझे अतिरिक्त कॉलम कैसे मिल सकते हैं?
- 22. मुझे टीबीआईटीबीटीएन के लिए * नए * दिखने वाले ग्लाइफ कहां मिल सकते हैं?
- 23. कोको में उपयोग के लिए मुझे रंगीन संकेतक कहां मिल सकते हैं?
- 24. सकते हैं MOQ मॉक एक कक्षा
- 25. क्या मुझे सी # में अधिक स्थिर तरीकों का उपयोग करके कार्यात्मक प्रोग्रामिंग (एफ #) के समान लाभ मिल सकते हैं?
- 26. मुझे फैंक्सबॉक्स छवियों के साथ 404 त्रुटियां मिल रही हैं
- 27. क्या सी # विशेषताएँ लक्ष्य कक्षा तक पहुंच सकते हैं?
- 28. क्या आप एक कक्षा में दो कक्षाएं बढ़ा सकते हैं?
- 29. क्या कक्षा में वर्चुअल डेटा सदस्य हो सकते हैं?
- 30. मुझे बहुत सारे पाठों से सबसे लोकप्रिय वाक्यांश कैसे मिल सकते हैं?
तो, मैं 'क्लास' को myClass नाम से बदलता हूं? –
आप इसे कमांड लाइन 'जावा डंपमेथ्स com.mypackage.MyClass' – corsiKa
से उपयोग करेंगे, आप 'args [0]' 'com.mypackage.MyClass" के साथ भी बदल सकते हैं। यदि यह डिफ़ॉल्ट पैकेज का उपयोग कर रहा है, तो आप केवल '"MyClass" का उपयोग कर सकते हैं। – corsiKa