How can I get an inner class's outer class's this in Java? -


इस सवाल का पहले से ही एक उत्तर है: < / P>

  • 8 जवाब

मेरे पास दो वर्ग हैं, बाहरी और इनर , और बाहरी में एक विधि है जो इनर लेता है इसे मान्य करने की आवश्यकता है कि यह आंतरिक स्वयं का एक है, और कोई भी इनर नहीं है जो कि एक और उदाहरण के अंतर्गत आता है मैं क्या करना चाहता हूँ अनिवार्य रूप से innerInstance.outer.this है, लेकिन इसके लिए एक खोजशब्द नहीं लगता है मेरी केवल एक अन्य अवधारणा getOuterThis () विधि इनर पर है, लेकिन मुझे इसका सहारा नहीं करना पड़ता।

यहां सामान्य कंकाल है सार्वजनिक वर्क आउटर {सार्वजनिक इनर मिलेइनर () {...} सार्वजनिक शून्य उपयोगइनर (इनर इनर) {// यहां मान्य करें} सार्वजनिक वर्ग इनर { // क्या मैं इस से बच सकता हूँ? सार्वजनिक बाहरी getOuterThis () {Outer.this वापसी; }}}}

मुझे नहीं लगता कि बाहरी.इस संदर्भ को स्पष्ट रूप से इसे उजागर करना जैसे कि आप कर रहे हैं हालांकि, आप संभवत: इनर क्लास को सत्यापन करते हुए पूरी तरह से बच सकते हैं:

  सार्वजनिक वर्ग बाहरी {सार्वजनिक इनर getInner ()} {...} सार्वजनिक शून्य उपयोगइनर (इनर इनर) {/ / भीतर की पुष्टि करें। वैधताउच्चतम इन्स्टेंस (यह); } सार्वजनिक वर्ग इनर {सार्वजनिक शून्य मान्य बाहरी अनुभव (बाहरी बाहरी) {यदि (बाहरी। This! = बाहरी) {नया अमान्यअर्गमेंट अपवाद ("गलत बाहरी उदाहरण"); }}}}  
पर क्लिक करें

Comments

Popular posts from this blog

java - org.apache.http.ProtocolException: Target host is not specified -

java - Gradle dependencies: compile project by relative path -

ruby on rails - Object doesn't support #inspect when used with .include -