2

CopyOnWriteArrayList は Serializable とマークされています。しかし、その内部状態は一時的なものです。このタイプのリストで何をシリアル化しようとしているのか、誰でも答えてください。

/** The array, accessed only via getArray/setArray. */
private volatile transient Object[] array;
4

1 に答える 1

4

このwriteObjectメソッドは、特定の方法で状態を保存するためにオーバーライドされています。したがって、実際のストア、つまりarray一時的であることは、CopyOnWRiteArrayList オブジェクトのシリアル化には影響しません。

オブジェクト内の一時メンバーは、JVM によるデフォルトのシリアル化プロセス中に残されます。ただし、 をオーバーライドwriteObject()すると、デフォルトのシリアル化戦略ではなく、そのメソッド定義がオブジェクトのシリアル化に使用されます。

于 2012-12-16T04:42:12.293 に答える