CopyOnWriteArrayList は Serializable とマークされています。しかし、その内部状態は一時的なものです。このタイプのリストで何をシリアル化しようとしているのか、誰でも答えてください。
/** The array, accessed only via getArray/setArray. */
private volatile transient Object[] array;
CopyOnWriteArrayList は Serializable とマークされています。しかし、その内部状態は一時的なものです。このタイプのリストで何をシリアル化しようとしているのか、誰でも答えてください。
/** The array, accessed only via getArray/setArray. */
private volatile transient Object[] array;
このwriteObject
メソッドは、特定の方法で状態を保存するためにオーバーライドされています。したがって、実際のストア、つまりarray
一時的であることは、CopyOnWRiteArrayList オブジェクトのシリアル化には影響しません。
オブジェクト内の一時メンバーは、JVM によるデフォルトのシリアル化プロセス中に残されます。ただし、 をオーバーライドwriteObject()
すると、デフォルトのシリアル化戦略ではなく、そのメソッド定義がオブジェクトのシリアル化に使用されます。