Changement de comportement dans les exceptions lors de l'appel de la méthode Class.getAnnotation()

La méthode java.lang.Class.getAnnotation() a précédemment renvoyé l'erreur java.lang.ArrayStoreException lorsque l'annotation contenait une valeur de tableau faisant référence à une classe manquante. Dans Java 11, cet appel se traduit par un java.lang.TypeNotPresentException lorsque l'annotation a une valeur de tableau qui fait référence à une classe manquante. Evaluez la logique de votre bloc catch pour voir si vous devez également gérer TypeNotPresentException ou un type d'exception d'exécution plus général.

Cette règle signale les appels à la fonction java.lang.Class.getAnnotation() lorsque l'appel à la méthode est entouré d'un try avec un catch clause pour ArrayStoreException.

Cette règle comporte un correctif automatisé pour remplacer ArrayStoreException par TypeNotPresentException dans try/catch en utilisant Class.getAnnotation(). Copiez la configuration personnalisée dans le fichier de construction de votre application pour activer l'automatisation de la correction.

Pour le Javadoc de Class, voir Class. Pour plus d'informations sur les modifications apportées à Java SE 11, voir Fonctionnalités et options retirées dans JDK 11.