Lors de l’étape de compilation, le Java permet de lever les warnings sur des portions de code qui sont corrects d’un point de vue syntaxique, mais qui peuvent poser des problèmes lors de leur exécution.

Le warning le plus courant est sûrement le suivant :

Type safety: Unchecked cast from Object to Collection<String>

Cependant, dans certains cas, le code est correct et ne posera pas de problème à l’exécution. Depuis Java 5.0, il est possible d’indiquer au compilateur, via les annotations, d’ignorer certains warnings sur des blocs de code donnés. Ceci est possible grâce l’annotation @SuppressWarnings.

Par exemple, dans le cas précédent et dans le cas moins évident présenté ci-dessous :

List is a raw type. References to generic type List<E> should be parameterized

Il faut utiliser, l’annotation de la façon suivante :

@SuppressWarnings("unchecked")

L’annotation @SuppressWarnings accepte un nombre important de paramètres. Damien Viel propose une liste des valeurs possibles.

Attention ! Cette annotation doit être utilisée à bon escient. Il est recommandé de se demander pourquoi le Java lève un warning à cet endroit et s’il peut réellement être ignoré…