Mudança de comportamento na maioria das implementações de Collection.removeAll e Collection.retainAll

Antes do Java SE 8, a maioria das implementações de Collection.removeAll(Collection) e retainAll(Collection) retorna false e ignora silenciosamente um parâmetro nulo se a coleção em si estava vazia. No Java 8, todas as implementações de coleção lançam um NullPointerException se null for fornecido como um parâmetro.

Para identificar onde essas exceções podem ocorrer, essa regra sinaliza a chamada dos métodos removeAll(Collection) e retainAll(Collection) nas implementações e interfaces a seguir para que seja possível avaliar sua lógica para evitar um NullPointerException inesperado.

O método retainAll(Collection) é sinalizado para as implementações a seguir. Para elas, o método removeAll(Collection) já lança um NullPointerExceptions no Java 6 e Java 7.

O Java 8 não introduz uma mudança de comportamento para as implementações de coleção a seguir, portanto, elas não são sinalizadas por essa regra:

Para obter informações adicionais sobre a interface java.util.Collection e suas implementações, consulte a documentação Java Interface java.util.Collection.