Změna chování ve výjimkách při volání metody Class.getAnnotation()

Metoda java.lang.Class.getAnnotation() dříve hodil nesprávné java.lang.ArrayStoreException když měla anotace hodnotu pole, která odkazuje na chybějící třídu. V Java 11 má toto volání za následek a java.lang.TypeNotPresentException když má anotace hodnotu pole, která odkazuje na chybějící třídu. Vyhodnoťte logiku v zachytávacím bloku, abyste viděli, zda musíte také ošetřit výjimku TypeNotPresentException, nebo obecnější typ výjimky za běhu.

Toto pravidlo označuje volání na java.lang.Class.getAnnotation() metoda, když je volání metody obklopeno a try prohlášení s a catch doložka pro ArrayStoreException.

Toto pravidlo má automatickou opravu, která nahrazuje ArrayStoreException s TypeNotPresentException v try/catch pomocí Class.getAnnotation(). Zkopírujte vlastní konfiguraci do souboru pro sestavení aplikace, abyste umožnili automatizaci opravy.

V případě dokumentace Javadoc si prohlédněte téma Class. Další informace o změnách na Java SE 11 naleznete v části Odstraněné funkce a možnosti v JDK 11.