Class.getAnnotation() メソッドの呼び出しの際の例外での振る舞いの変更

java.lang.Class.getAnnotation() メソッドは、以前、欠落しているクラスを参照する配列値がアノテーションにある場合、誤った java.lang.ArrayStoreException をスローしました。Java 11 では、欠落しているクラスを参照する配列値がアノテーションにある場合、この呼び出しの結果として java.lang.TypeNotPresentException がスローされます。 catch ブロック内のロジックを評価して、TypeNotPresentException またはより一般的な実行時例外のタイプも処理する必要があるかどうかを判断します。

この規則は、java.lang.Class.getAnnotation() メソッドの呼び出しが ArrayStoreExceptioncatch 節を使用する try ステートメントによって囲まれている場合、そのメソッド呼び出しにフラグを立てます。

Class Javadoc については、 Class を参照してください。 Java SE 11 の変更について詳しくは、 Removed Features and Options in JDK 11 を参照してください。