Zmiana działania w większości implementacji metod Collection.removeAll i Collection.retainAll

W wersjach wcześniejszych niż Java SE 8 większość implementacji metod Collection.removeAll(Collection) i retainAll(Collection) klasy Collection zwracała wartość false i ignorowała parametr null, jeśli sama kolekcja była pusta. W środowisku Java 8 wszystkie implementacje kolekcji zgłaszają wyjątek NullPointerException, jeśli parametr ma wartość NULL.

W celu zidentyfikowania miejsc, w których mogą wystąpić te wyjątki, reguła ta powoduje oznaczenie wywołań metod removeAll(Collection) i retainAll(Collection) w poniższych implementacjach i interfejsach. Ułatwia to analizę logiki działania i pozwala uniknąć nieoczekiwanego wyjątku NullPointerException.

Metoda retainAll(Collection) jest oznaczana w poniższych implementacjach. Metoda removeAll(Collection) zgłasza już wyjątek NullPointerExceptions w językach Java 6 i Java 7.

W środowisku Java 8 nie zmieniono działania następujących implementacji kolekcji, dlatego nie są one oznaczane przez tę regułę:

Dodatkowe informacje na temat interfejsu java.util.Collection i jego implementacji można znaleźć w dokumentacji języka Java: Interfejs va.util.Collection.