E - the type of the elements in the collectionpublic abstract class AbstractCollectionDecorator<E> extends Object implements Collection<E>, Serializable
Collection to provide additional behaviour.
Each method call made on this Collection is forwarded to the
decorated Collection. This class is used as a framework on which
to build to extensions such as synchronized and unmodifiable behaviour. The
main advantage of decoration is that one decorator can wrap any implementation
of Collection, whereas sub-classing requires a new class to be
written for each implementation.
This implementation does not perform any special processing with
iterator(). Instead it simply returns the value from the
wrapped collection. This may be undesirable, for example if you are trying
to write an unmodifiable implementation it might provide a loophole.
This implementation does not forward the hashCode and equals methods through
to the backing object, but relies on Object's implementation. This is necessary
to preserve the symmetry of equals. Custom definitions of equality are usually
based on an interface, such as Set or List, so that the implementation of equals
can cast the object being tested for equality to the custom interface.
AbstractCollectionDecorator does not implement such custom interfaces directly;
they are implemented only in subclasses. Therefore, forwarding equals would break
symmetry, as the forwarding object might consider itself equal to the object being
tested, but the reverse could not be true. This behavior is consistent with the
JDK's collection wrappers, such as Collections.unmodifiableCollection(Collection).
Use an interface-specific subclass of AbstractCollectionDecorator, such as
AbstractListDecorator, to preserve equality behavior, or override equals directly.
| 限定符 | 构造器和说明 |
|---|---|
protected |
AbstractCollectionDecorator()
Constructor only used in deserialization, do not use otherwise.
|
protected |
AbstractCollectionDecorator(Collection<E> coll)
Constructor that wraps (not copies).
|
| 限定符和类型 | 方法和说明 |
|---|---|
boolean |
add(E object) |
boolean |
addAll(Collection<? extends E> coll) |
void |
clear() |
boolean |
contains(Object object) |
boolean |
containsAll(Collection<?> coll) |
protected Collection<E> |
decorated()
Gets the collection being decorated.
|
boolean |
isEmpty() |
Iterator<E> |
iterator() |
boolean |
remove(Object object) |
boolean |
removeAll(Collection<?> coll) |
boolean |
retainAll(Collection<?> coll) |
protected void |
setCollection(Collection<E> coll)
Sets the collection being decorated.
|
int |
size() |
Object[] |
toArray() |
<T> T[] |
toArray(T[] object) |
String |
toString() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitequals, hashCode, parallelStream, removeIf, spliterator, streamprotected AbstractCollectionDecorator()
protected AbstractCollectionDecorator(Collection<E> coll)
coll - the collection to decorate, must not be nullNullPointerException - if the collection is nullprotected Collection<E> decorated()
protected void setCollection(Collection<E> coll)
NOTE: this method should only be used during deserialization
coll - the decorated collectionpublic boolean add(E object)
add 在接口中 Collection<E>public boolean addAll(Collection<? extends E> coll)
addAll 在接口中 Collection<E>public void clear()
clear 在接口中 Collection<E>public boolean contains(Object object)
contains 在接口中 Collection<E>public boolean isEmpty()
isEmpty 在接口中 Collection<E>public boolean remove(Object object)
remove 在接口中 Collection<E>public int size()
size 在接口中 Collection<E>public Object[] toArray()
toArray 在接口中 Collection<E>public <T> T[] toArray(T[] object)
toArray 在接口中 Collection<E>public boolean containsAll(Collection<?> coll)
containsAll 在接口中 Collection<E>public boolean removeAll(Collection<?> coll)
removeAll 在接口中 Collection<E>public boolean retainAll(Collection<?> coll)
retainAll 在接口中 Collection<E>Copyright © 2022. All rights reserved.