대부분의 Collection.removeAll 및 Collection.retainAll 구현의 동작 변경

Java SE 8 이전에서, Collection.removeAll(Collection)retainAll(Collection)의 대부분의 구현에서는 콜렉션 자체가 비어 있는 경우 false를 리턴하고 널 매개변수를 자동으로 무시합니다. Java 8에서, 널이 매개변수로 제공되는 경우 모든 콜렉션 구현에 NullPointerException이 발생합니다.

이러한 예외가 발생할 수 있는 위치를 식별하기 위해 이 규칙은 다음 구현 및 인터페이스에서 removeAll(Collection)retainAll(Collection) 메소드의 호출에 플래그를 지정해서, 로직을 평가하여 예상치 못한 NullPointerException을 막을 수 있도록 합니다.

retainAll(Collection) 메소드는 다음 구현에 대해 플래그가 지정됩니다. 이에 대해 removeAll(Collection) 메소드는 Java 6 및 Java 7에서 NullPointerExceptions가 이미 발생합니다.

Java 8에서 다음 콜렉션 구현에 대해 동작 변경을 소개하지 않아서, 이 규칙으로 플래그가 지정되지 않습니다.

java.util.Collection 인터페이스 및 해당 구현에 대한 추가 정보는 Interface java.util.Collection Java 문서를 참조하십시오.