Modificarea comportamentului în majoritatea implementărilor Collection.removeAll şi Collection.retainAll

Anterior versiunii Java SE 8, majoritatea implementărilor Collection.removeAll(Collection) şi retainAll(Collection) returnează false şi ignoră silenţios un parametru null dacă colecţia însăşi a fost goală. În Java 8, toate implementările de colecţie aruncă o NullPointerException dacă null este furnizat ca parametru.

Pentru a identifica unde ar putea surveni aceste excepţii, această regulă semnalează invocarea metodelor removeAll(Collection) şi retainAll(Collection) în următoarele implementări şi interfeţe, astfel încât să vă puteţi evalua logica pentru a evita o NullPointerException neaşteptată.

Metoda retainAll(Collection) este semnalată pentru următoarele implementări. Pentru acestea, metoda removeAll(Collection) aruncă întotdeauna o NullPointerExceptions în Java 6 şi Java 7.

Java 8 nu introduce o modificare de comportament pentru următoarele implementări de colecţie, deci acestea nu sunt semnalate de această regulă:

Pentru informaţii suplimentare despre interfaţa java.util.Collection şi implementările sale, vedeţi documentaţia Java Interface java.util.Collection.