2008-10-01 27 views
7

मैं अगर एक कक्षा वस्तु उदाहरणयह निर्धारित करने के लिए कि कोई वर्ग अन्य वर्ग का उप-वर्ग है या नहीं?

Class class1 = Class.forName("Class1"); 
Class class2 = Class.forName("Class2"); 

if(class1.isSubClassOf(class2)) // fake methos isSubClassOf 
{ 
    // do sth 
} 

मैं इस isSubClassOf विधि लागू कर सकते हैं कैसे के लिए अन्य वर्ग का एक उपवर्ग का प्रतिनिधित्व करता है की जाँच करना चाहते हैं?

उत्तर

12

Class.isAssignableFrom() आप जो भी कर रहे हैं उससे कम या कम प्रदान करता है, हालांकि यह इंटरफ़ेस को भी संभालता है, इसलिए यह सुनिश्चित करने के लिए थोड़ा और अतिरिक्त काम करने की आवश्यकता हो सकती है कि यह उप-वर्ग, प्रत्यक्ष या अन्यथा हो।

+0

मैं सभी को मिला कि किस वर्ग के बारे में था, उस विधि के लिए जावाडोक पढ़ना। इसे यहां सभी के लाभ के लिए रखने के लिए: यदि आपके पास 'क्लास सब क्लास सुपर क्लास' है: 'SuperClass.class.isAssignableFrom (SubClass.class) 'सत्य है, जबकि' SubClass.class.isAssignableFrom (SuperClass.class) 'है असत्य। तो यह ओपी की कल्पित 'isSubClassOf' विधि के विपरीत है। – MatrixFrog

-6

उदाहरण ऑपरेटर, आईआईआरसी।

हालांकि, आपको कभी ऐसा नहीं करना चाहिए। लागू वर्ग में एक विधि जोड़ें और इसके साथ किया जाना चाहिए।

+2

नहीं, उदाहरण कक्षाओं के उदाहरणों की तुलना करने के लिए है, कक्षाएं स्वयं नहीं। – skaffman

+0

यदि आपके पास कोई उदाहरण नहीं है, तो यह संभवतः अकादमिक है। यदि आप करते हैं, तो यह काम करेगा। – Marcin

+1

नहीं, यह नहीं होगा। exampleof और isAssignableFrom() गहराई से अलग हैं। – skaffman

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

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