のように、私は反射に非常に新しいですし、私は疑問を持っている:
AccessibleObjectクラスのsetAccessibleメソッドの背後にある理由は、booleanパラメータを持っていますか?
public void setAccessible(boolean flag) throws SecurityException
この方法は、任意のフィールドやメソッドの新しいアクセス可能であることを表しboolen
パラメータフラグを持っています。私たちは、クラスの外からクラスのprivate
メソッドにアクセスしようとする場合、例えば
その後、我々はgetDeclaredMethod
を使用する方法を取得し、true
として、アクセシビリティを設定し、それは次のように、呼び出すことができます。シナリオで今method.setAccessible(true);
method.setAccessible(false);
を使用する必要があります。例として、public
メソッドがあり、アクセシビリティをfalseに設定した場合に使用できます。しかし、その必要性は何ですか?私の理解は明確ですか?
method.setAccessible(false)
のない使用がない場合、我々は以下のようにメソッドシグネチャを変更することができます。
public void setAccessible() throws SecurityException
あなたは、コードのプログラマが**意図しなかった状態で反射下のコードを残したくない** 。あなたは ?検査のためにリフレクションを使用して_unlock_コードを作成しましたが、後で_unlocked_にしておきたいですか? –
あなたのポイントを得ました。 –
私は質問を改善できるようにコメントを入れてください。 –