हालांकि, जावा के प्रतिबिंब एपीआई का उपयोग करके इन प्रतिबंधों को बायपास करना संभव है। यह लेख यह बताता है कि क्या और कैसे निजी क्षेत्रों को प्रतिबिंब के माध्यम से एक्सेस किया जा सकता है। इसे प्राप्त करने के लिए:
फ़ील्ड ऑब्जेक्ट प्राप्त करें:
getDeclaredField () को फील्ड के प्रतिनिधित्व को प्राप्त करने के लिए क्लास ऑब्जेक्ट पर विधि का आह्वान करें। यह संलग्न वर्ग के बाहर से निजी सदस्यों तक पहुंच की अनुमति देता है। निजी स्ट्रिंग str; सार्वजनिक शून्य सेटस्ट्र (स्ट्रिंग मान) { str = मान; } … कक्षा अन्य { सार्वजनिक स्थैतिक शून्य main (String [] args) फेंकता अपवाद { परीक्षण टी = नया परीक्षण (); T.Setstr ("हाय"); फ़ील्ड फील्ड = test.class.getDeclaredField ("STR"); field.setaccessible (सच); ऑब्जेक्ट वैल्यू = field.get (t); System.out.println (मान); } }Cautions:
While it is technically possible, accessing private fields via reflection can have significant drawbacks:Subverts Encapsulation:
It violates the intended level of encapsulation and can lead to unexpected परिणाम। सावधानी के साथ और केवल जब पूरी तरह से आवश्यक हो।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3