広告

Java : ReflectiveOperationException - API使用例

ReflectiveOperationException (Java SE 21 & JDK 21) の使用例まとめです。
だいたいのメソッドを網羅済みです。
API仕様書のおともにどうぞ。


概要

コア・リフレクションのリフレクト操作からスローされる例外の、共通のスーパー・クラスです。

クラス構成

ReflectiveOperationException は、リフレクション操作に失敗したときに発生する例外のベースとなるクラスです。
より具体的な例外として、ReflectiveOperationException のサブクラスがいくつか用意されています。

例えば、

などです。

public class Foo {
    public void aaa() {
    }
}
try {
    final var cls = Foo.class;

    final var aaa = cls.getMethod("aaa");
    System.out.println("aaa : OK!");

    final var bbb = cls.getMethod("bbb");

} catch (ReflectiveOperationException e) {
    System.out.println(e);
}

// 結果
// ↓
//aaa : OK!
//java.lang.NoSuchMethodException: Foo.bbb()

コンストラクタ

ReflectiveOperationException ()

詳細メッセージがnullである新規例外を構築します。

final var e = new ReflectiveOperationException();
System.out.println(e); // java.lang.ReflectiveOperationException

ReflectiveOperationException (String message)

指定された詳細メッセージを持つ、新規例外を構築します。

final var e = new ReflectiveOperationException("abcd");
System.out.println(e); // java.lang.ReflectiveOperationException: abcd
System.out.println(e.getMessage()); // abcd

ReflectiveOperationException (String message, Throwable cause)

指定された詳細メッセージおよび原因を使用して新規例外を構築します。

final var cause = new NoSuchMethodException("XYZ");
final var e = new ReflectiveOperationException("abcd", cause);

System.out.println(e); // java.lang.ReflectiveOperationException: abcd
System.out.println(e.getMessage()); // abcd

System.out.println(e.getCause()); // java.lang.NoSuchMethodException: XYZ
System.out.println(e.getCause().getMessage()); // XYZ

ReflectiveOperationException (Throwable cause)

指定された原因と詳細メッセージ(cause==null ? null : cause.toString())を持つ新しい例外を構築します(通常、causeのクラスと詳細メッセージを含みます)。

final var cause = new NoSuchMethodException("XYZ");
final var e = new ReflectiveOperationException(cause);

System.out.println(e); // java.lang.ReflectiveOperationException: java.lang.NoSuchMethodException: XYZ

System.out.println(e.getCause()); // java.lang.NoSuchMethodException: XYZ
System.out.println(e.getCause().getMessage()); // XYZ

Throwableで宣言されたメソッド

addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString

Java API 使用例 : Throwable」をご参照ください。


関連記事

ページの先頭へ