クラスのフィールドの値を動的に設定するために、いくつかの注釈を使用しています。public、protected、private のいずれであってもこれを実行したいのでsetAccessible(true)
、メソッドを呼び出す前に毎回 Field オブジェクトを呼び出していset()
ます。setAccessible()
私の質問は、コールがフィールド自体にどのような影響を与えるかです。
より具体的には、それがプライベート フィールドであり、この一連のコードが を呼び出すとしますsetAccessible(true)
。コード内の別の場所でリフレクションを介して同じフィールドを取得する場合、そのフィールドは既にアクセス可能でしょうか? または、 メソッドgetDeclaredFields()
とgetDeclaredField()
メソッドは毎回 Field オブジェクトの新しいインスタンスを返しますか?
質問を述べる別の方法は、 を呼び出した場合setAccessible(true)
、完了後に元の値に戻すことがどれほど重要かということだと思います。