Před verzí Java SE 8 většina implementací Collection.removeAll(Collection) a retainAll(Collection) vrací hodnotu false a bezobslužně ignoruje parametr Null, pokud je samotná kolekce prázdná. Ve verzi Java 8 všechny implementace kolekcí generují výjimku NullPointerException, pokud je jako parametr poskytnuta hodnota null.
Chcete-li identifikovat místo, kde může dojít k výjimkám, označí toto pravidlo vyvolání metod removeAll(Collection) a retainAll(Collection) v dále uvedených implementacích a rozhraních, abyste mohli vyhodnotit uplatněnou logiku, a tím zabránit neočekávané výjimce NullPointerException.
- 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
Metoda retainAll(Collection) je označena pro následující implementace. Pro tyto účely metoda removeAll(Collection) již v prostředí Java 6 a Java 7 vyvolá výjimku NullPointerExceptions.
- java.util.concurrent.ConcurrentSkipListSet
- java.util.HashSet
- java.util.LinkedHashSet
- java.util.TreeSet
- javax.print.attribute.standard.JobStateReasons
Java 8 nezavádí změnu chování pro následující implementace kolekce, takže nejsou označeny tímto pravidlem:
- java.beans.beancontext.BeanContextServicesSupport - pokračuje ve vyvolání výjimky
UnsupportedOperationException
- java.beans.beancontext.BeanContextSupport - pokračuje ve vyvolání výjimky
UnsupportedOperationException
- java.util.concurrent.SynchronousQueue - pokračuje v chování Java 7 a nevyvolává výjimku
NullPointerException
Další informace o rozhraní java.util.Collection a jeho implementacích viz dokumentace Java
Interface java.util.Collection.