Cambio de comportamiento en la mayoría de las implementaciones de Collection.removeAll y Collection.retainAll

Antes de la aparición de Java SE 8, la mayoría de las implementaciones de Collection.removeAll(Collection) y retainAll(Collection) devolvían un valor false y pasaban por alto la existencia de un parámetro nulo cuando la colección propiamente dicha estaba vacía. En Java 8, todas las implementaciones de colección emiten una excepción NullPointerException si se proporciona un parámetro nulo.

Para identificar dónde se pueden producir estas excepciones, esta regla señala la invocación de los métodos removeAll(Collection) y retainAll(Collection) en las implementaciones e interfaces siguientes para que pueda evaluar la lógica de programación y evitar excepciones NullPointerException inesperadas.

El método retainAll(Collection) se señaliza para las implementaciones siguientes. Para estas implementaciones, el método removeAll(Collection) ya emite una excepción NullPointerException en Java 6 y Java 7.

Java 8 no incorpora un cambio de comportamiento para las implementaciones de colección siguientes, por lo que no son señalizadas por esta regla:

Para obtener más información sobre la interfaz java.util.Collection y sus implementaciones, consulte la documentación de Java Interface java.util.Collection.