Java : IllegalAccessException - API使用例
IllegalAccessException (Java SE 19 & JDK 19) の使用例まとめです。
だいたいのメソッドを網羅済みです。
API仕様のおともにどうぞ。
概要
IllegalAccessException は、リフレクション操作でアクセスに失敗したときに発生するチェック例外です。
例えば、private な Field から setAccessible(true) せずに値を取得しようとすると発生します。
public class Foo {
private int num = 100;
}
final var cls = Foo.class;
final var obj = new Foo();
final var field = cls.getDeclaredField("num");
System.out.println("field : " + field);
System.out.println("-----");
try {
System.out.println("canAccess = " + field.canAccess(obj));
System.out.println("get = " + field.getInt(obj));
} catch (IllegalAccessException e) {
System.out.println("IllegalAccessException!");
}
System.out.println("-----");
try {
field.setAccessible(true);
System.out.println("canAccess = " + field.canAccess(obj));
System.out.println("get = " + field.getInt(obj));
} catch (IllegalAccessException e) {
System.out.println("IllegalAccessException!");
}
// 結果
// ↓
//field : private int Foo.num
//-----
//canAccess = false
//IllegalAccessException!
//-----
//canAccess = true
//get = 100
コンストラクタ
IllegalAccessException ()
final var e = new IllegalAccessException();
System.out.println(e); // java.lang.IllegalAccessException
IllegalAccessException (String s)
final var e = new IllegalAccessException("abcd");
System.out.println(e); // java.lang.IllegalAccessException: abcd
System.out.println(e.getMessage()); // abcd
Throwableで宣言されたメソッド
addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
「Java API 使用例 : Throwable」をご参照ください。