大部分 Collection.removeAll 和 Collection.retainAll 實作中的行為變更

在 Java SE 8 之前,如果集合本身是空的,Collection.removeAll(Collection)retainAll(Collection) 的大部分實作會傳回 false,並無聲自動忽略空值參數。 在 Java 8 中,如果提供空值作為參數,所有集合實作會擲出 NullPointerException

為了識別可能發生這些異常狀況的地方,此規則會在下列實作和介面中標示 removeAll(Collection)retainAll(Collection) 方法的呼叫,讓您可以評估邏輯以避免非預期的 NullPointerException

下列實作中會標示 retainAll(Collection) 方法。在 Java 6 和 Java 7 中,對於這些實作,removeAll(Collection) 方法已擲出 NullPointerExceptions

Java 8 沒有對下列集合實作引進行為變更,所以此規則不會標示它們:

如需 java.util.Collection 介面及其實作的相關資訊,請參閱 介面 java.util.Collection Java 說明文件。