Geändertes Verhalten in den meisten Collection.removeAll- und Collection.retainAll-Implementierungen

In den Java-Versionen vor Java SE 8 geben die meisten Implementierungen von Collection.removeAll(Collection) und retainAll(Collection) false zurück und ignorieren einen Nullparameter automatisch, wenn die Objektgruppe selbst leer ist. In Java 8 lösen alle Collection-Implementierungen eine Ausnahme des Typs NullPointerException aus, wenn null als Parameter angegeben wird.

Um festzustellen, wo diese Ausnahmen eintreten können, markiert diese Regel den Aufruf der Methoden removeAll(Collection) und retainAll(Collection) in den folgenden Implementierungen und Schnittstellen, damit Sie Ihre Logik evaluieren können, um unerwartete Ausnahmen des Typs NullPointerException zu vermeiden.

Die Methode retainAll(Collection) wird für die folgenden Implementierungen markiert. Für diese löst die Methode removeAll(Collection) bereits in Java 6 und Java 7 bereits eine Ausnahme des Typs NullPointerExceptions aus.

In Java 8 wird für die folgenden Collection-Implementierungen keine Verhaltensänderung eingeführt. Deshalb werden diese Implementierungen auch von dieser Regel nicht markiert:

Weitere Informationen zur Schnittstelle java.util.Collection und deren Implementierungen finden Sie in der Java-Dokumentation zur Schnittstelle java.util.Collection.