2
CopyOnWriteArrayList被标记为Serializable。但它的内部状态是暂时的。任何人都可以请回答我们试图在这种类型的列表中序列化。CopyOnWriteArrayList内部状态为瞬态
/** The array, accessed only via getArray/setArray. */
private volatile transient Object[] array;
CopyOnWriteArrayList被标记为Serializable。但它的内部状态是暂时的。任何人都可以请回答我们试图在这种类型的列表中序列化。CopyOnWriteArrayList内部状态为瞬态
/** The array, accessed only via getArray/setArray. */
private volatile transient Object[] array;
writeObject
方法已被覆盖,以特定方式存储状态。所以实际的商店,即array
是暂时的,并不影响CopyOnWRiteArrayList对象的序列化。
对象中的瞬态成员将在默认序列化过程中由JVM保留。但是,如果您覆盖writeObject()
,那么该方法定义将用于序列化对象而不是默认的序列化策略。
谢谢。 writeObject方法使其明确 –
我想知道为什么CopyOnWRiteArrayList需要定制序列化? – XiaJun