2010-10-29 15 views
7

से प्राप्त करें संक्षेप में, मैं "classObject.getDeclaredClasses()" के विपरीत करने की कोशिश कर रहा हूं।बाहरी वर्ग ऑब्जेक्ट को आंतरिक कक्षा ऑब्जेक्ट

मेरे पास एक तरीका है जो Class<? extends Object> प्रकार का ऑब्जेक्ट प्राप्त करता है। मैं यह जानना चाहता हूं कि यह एक आंतरिक वर्ग है, और यदि ऐसा है, तो मैं आसपास के वर्ग 'ऑब्जेक्ट इंस्टेंस का उपयोग करना चाहता हूं।

क्या इसके लिए कोई स्मार्ट एपीआई है, या क्या मुझे कुछ स्ट्रिंग मैनिपुलेशन और पार्सिंग करने के लिए मजबूर किया गया है?

उत्तर

20

आप Class.getDeclaringClass() विधि के लिए देख रहे हैं:

सार्वजनिक कक्षा getDeclaringClass()

वर्ग या इस वर्ग वस्तु का प्रतिनिधित्व करती इंटरफ़ेस अन्य वर्ग का एक सदस्य है, तो रिटर्न कक्षा वस्तु का प्रतिनिधित्व जिस वर्ग में यह घोषित किया गया था। यह विधि शून्य हो जाती है यदि यह कक्षा या इंटरफ़ेस किसी अन्य वर्ग के सदस्य नहीं है। यदि यह क्लास ऑब्जेक्ट एक सरणी वर्ग का प्रतिनिधित्व करता है, एक आदिम प्रकार, या शून्य, तो यह विधि शून्य हो जाती है।

रिटर्न: इस वर्ग के

+0

ओह का एक उदाहरण के बिना instantiated जा मेरी, मैं बेवकूफ लग रहा है। बेशक मैं इसकी तलाश में हूं। धन्यवाद! –

1

इनर कक्षा कोड

से बाहरी कक्षा उदाहरण संदर्भित भीतरी वर्ग कोड है कि यह से जुड़ा हुआ है बाहरी वर्ग उदाहरण के लिए एक संदर्भ की जरूरत है के लिए घोषित वर्ग, बाहरी वर्ग, एक डॉट का नाम है, और इस

* remember that if there is no name conflict, there is no need for any special syntax 
* for code in MyInner to obtain a reference to its MyOuter: 

    MyOuter.this 

स्थिर इनर क्लासेस का उपयोग

एक आंतरिक वर्ग के रूप में स्थिर

चिह्नित किया जा सकता एक स्थिर भीतरी वर्ग बाहरी वर्ग

* static members of the outer class are visible to the inner class, no matter what their access level 
* non-static members of the outer class are not available, since there is not instance of the outer class to retrieve them from 
संबंधित मुद्दे