私はリフレクションを学ぼうとしていましたが、質問を横切って、なぜ例外がなかったのですか??
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 がスローされる可能性があることを知っています。しかし、ここでは、そうではありませんでした。なぜですか?