2011-02-02 15 views
7

मुझे एक विशिष्ट समस्या है, जो ग्रहण पूरी तरह से हल करता है, लेकिन मुझे प्रोग्रामेटिक समाधान की आवश्यकता है। मैं जो करना चाहता हूं वह है जो मैं प्रदान करता हूं किसी भी वर्ग के "टाइप पदानुक्रम" प्राप्त करता हूं। ग्रहण दबाकर एक समाधान दिखाता है Ctrl + टी, लेकिन यह कैसे प्राप्त करता है? क्या कोई एपीआई उपलब्ध है ताकि मैं उनका उपयोग कर सकूं?जावा में क्लास पदानुक्रम प्राप्त करना?

उत्तर

2

जावा में एक प्रतिबिंब एपीआई है जिसका उपयोग आप जो भी वर्ग के आधार वर्ग को निर्धारित करने के लिए कर सकते हैं, साथ ही किसी भी इंटरफेस जो विशेष वर्ग लागू करता है। यह निर्धारित करना कि उस वर्ग से कौन सी कक्षाएं उत्तराधिकारी हैं, हालांकि कुछ और मुश्किल हो रही है। प्रतिबिंब एपीआई आपको कई अन्य सामान भी करने देता है, यह भी निर्धारित करता है कि उस वर्ग के सदस्य क्या हैं, और यहां तक ​​कि उस वर्ग के कॉल विधियां भी हैं।

public void DisplaySuperClass(Class c) 
{ 
    System.out.println(c.getSuperclass().getName()); 
}
+0

धन्यवाद ... यह वास्तव में सहायक था ... :) – Sonam

+0

@ user599584: अगर आपको उत्तर पसंद आया, और उसने आपके प्रश्न का उत्तर दिया, तो आपको उत्तर के पक्ष में चेकमार्क पर क्लिक करके इसे 'स्वीकार' करना चाहिए। – Avi

7

आप उपयोग कर सकते हैं जावा के reflection API आदेश कार्यावधि में प्रकार के बारे में जानकारी प्राप्त करने के लिए।

उदाहरण के लिए, आप प्रकार के पेड़ को ऊपर की ओर चलने के लिए Class.getSuperclass() का उपयोग कर सकते हैं और कक्षा के माता-पिता को ढूंढ सकते हैं।

1

हालांकि कक्षा के सभी उप-वर्गों को खोजने का कोई आसान तरीका नहीं है। इसके लिए आपको अपने कक्षा में सभी वर्गों को लोड करना होगा (जो कई हजार हो सकते हैं) और संभवतः एक कस्टम ClassLoader (और केवल यदि आप दर्द से प्रतिरोधी हैं तो आप वहां जाना चाहते हैं) के माध्यम से इस पेड़ का निर्माण करना होगा)

+0

धन्यवाद ... यह वास्तव में सहायक था ... :) – Sonam

संबंधित मुद्दे