Prima di Java SE 8, la maggior parte delle implementazioni di Collection.removeAll(Collection) e retainAll(Collection) restituivano false ed ignoravano un parametro null se la raccolta stessa era vuota. In Java 8, tutte le implementazioni di raccolta generano un'eccezione NullPointerException se viene fornito null come parametro.
Per identificare dove possono verificarsi queste eccezioni, questa regola contrassegna la chiamata ai metodi removeAll(Collection) e retainAll(Collection) nelle seguenti implementazioni e interfacce in modo da poter valutare la logica per evitare una NullPointerException imprevista.
- java.util.ArrayDeque
- java.util.ArrayList
- java.util.Collection
- java.util.Deque
- java.util.EnumSet
- java.util.LinkedList
- java.util.List
- java.util.NavigableSet
- java.util.PriorityQueue
- java.util.PriorityQueue
- java.util.Queue
- java.util.Set
- java.util.SortedSet
- java.util.Stack
- java.util.Vector
- java.util.concurrent.ArrayBlockingQueue
- java.util.concurrent.BlockingDeque
- java.util.concurrent.BlockingQueue
- java.util.concurrent.ConcurrentLinkedDeque
- java.util.concurrent.ConcurrentLinkedQueue
- java.util.concurrent.CopyOnWriteArrayList
- java.util.concurrent.CopyOnWriteArraySet
- java.util.concurrent.DelayQueue
- java.util.concurrent.LinkedBlockingDeque
- java.util.concurrent.LinkedBlockingQueue
- java.util.concurrent.LinkedTransferQueue
- java.util.concurrent.PriorityBlockingQueue
- java.util.concurrent.TransferQueue
- javax.management.AttributeList
- javax.management.relation.RoleList
- javax.management.relation.RoleList
- javax.management.relation.RoleUnresolvedList
Il metodo retainAll(Collection) viene contrassegnato per le seguenti implementazioni. Per queste, il metodo removeAll(Collection) genera giĆ un'eccezione NullPointerExceptions in Java 6 e Java 7.
- java.util.concurrent.ConcurrentSkipListSet
- java.util.HashSet
- java.util.LinkedHashSet
- java.util.TreeSet
- javax.print.attribute.standard.JobStateReasons
Java 8 non introduce un cambiamento del comportamento per le seguenti implementazioni di raccolta, quindi non vengono contrassegnate da questa regola:
- java.beans.beancontext.BeanContextServicesSupport - continua a generare l'eccezione
UnsupportedOperationException
- java.beans.beancontext.BeanContextSupport - continua a generare l'eccezione
UnsupportedOperationException
- java.util.concurrent.SynchronousQueue - continua ad avere il comportamento di Java 7 e non genera un'eccezione
NullPointerException
Per ulteriori informazioni sull'interfaccia java.util.Collection e le relative implementazioni, consultare la documentazione Java
Interface java.util.Collection.