Ich bin sehr neu in Reflexion und ich habe Zweifel, wie:
Was ist der Grund dafür, dass die setAccessible-Methode der AccessibleObject-Klasse über einen booleschen Parameter verfügt?
public void setAccessible(boolean flag) throws SecurityException
Diese Methode hat einen boolen
Parameter-Flag, die die neue Zugänglichkeit aller Felder oder Methoden gibt.
Ein Beispiel, wenn wir eine private
Methode einer Klasse von außerhalb der Klasse zugreifen sollen versuchen dann holen wir die Methode getDeclaredMethod
und stellen Sie die Zugänglichkeit als true
verwenden, so kann sie aufgerufen werden, wie: method.setAccessible(true);
Jetzt, in dem Szenario wir sollten method.setAccessible(false);
verwenden, für ein Beispiel kann es verwendet werden, wenn es eine public
Methode gibt und wir die Zugänglichkeit als falsch festlegen. Aber was ist das nötig? Ist mein Verständnis klar?
Wenn es keine Verwendung von method.setAccessible(false)
dann können wir die Methode Signatur ändern wie:
public void setAccessible() throws SecurityException
Sie wollen nicht den Code unter Reflexion in einem Zustand lassen, die der Programmierer des Codes ** nicht beabsichtigt ** . Machst du ? Du hast Reflektion benutzt, um ein Stück Code zur Inspektion zu öffnen. Willst du es danach _unlocked_ lassen? –
Yup. habe deinen Standpunkt verstanden. –
Downvoater können Sie bitte einen Kommentar, so dass ich meine Frage verbessern kann. –