Changement de comportement dans la plupart des implémentations Collection.removeAll et Collection.retainAll

Avant la version Java SE 8, la plupart des implémentations de Collection.removeAll(Collection) et de retainAll(Collection) renvoyaient la valeur false et ignoraient un paramètre de type null lorsque la collection elle-même était vide. Dans Java 8, toutes les implémentations de collection émettent une exception NullPointerException si la valeur null est fournie en tant que paramètre.

Pour identifier l'emplacement de ces exceptions, cette règle marque l'appel des méthodes removeAll(Collection) et retainAll(Collection) dans les interfaces et les implémentations suivantes, de telle sorte que vous puissiez évaluer votre logique afin d'éviter une exception NullPointerException inattendue.

La méthode retainAll(Collection) est marquée pour les implémentations suivantes. Dans ce cas, la méthode removeAll(Collection) émet toujours une exception NullPointerExceptions dans Java 6 et Java 7.

Java 8 n'inclut pas de changement de comportement pour les implémentations de collection suivantes. Elles ne sont donc pas marquées par cette règle :

Pour plus d'informations sur l'interface java.util.Collection et ses implémentations, voir la documentation Java Interface java.util.Collection.