2

私はリフレクションを学ぼうとしていましたが、質問を横切って、なぜ例外がなかったのですか??

public class FieldExceptionTest {
    private boolean b = true;

    public static void main(String[] args) throws Exception{
        FieldExceptionTest ft = new FieldExceptionTest();
        Class<?> c = ft.getClass();
        Field f = c.getDeclaredField("b");
        // f.setAccessible(true); //if i don't write this line, it also can run. 
        f.setBoolean(ft, Boolean.FALSE); 
        System.out.println(ft.b);
    }
}

なぜ IllegalAccessException をスローしなかったのですか?? 他の本を読むことで、プライベートまたはアクセスできないフィールドの値を取得または設定しようとした場合、または最終フィールドの値を設定しようとした場合に、 IllegalAccessException がスローされる可能性があることを知っています。しかし、ここでは、そうではありませんでした。なぜですか?

4

1 に答える 1