85

我想深度克隆一个列表。为此我们有一个方法

// apache commons method. This object should be serializable
SerializationUtils.clone ( object ) 

所以现在要克隆我的列表,我应该先将其转换为可序列化的。是否可以将列表转换为可序列化列表?

4

3 回答 3

175

java.util.List已经实现的所有标准实现java.io.Serializable

因此,即使它java.util.List本身不是 的子类型java.io.Serializable,也应该安全地将列表强制转换为Serializable,只要您知道它是像ArrayListor之类的标准实现之一LinkedList

如果您不确定,请先复制列表(使用类似的new ArrayList(myList)内容),然后您就知道它是可序列化的。

于 2009-09-07T07:13:14.290 回答
34

正如已经指出的,大多数标准实现List都是可序列化的。但是,您必须确保列表中引用/包含的对象也是可序列化的。

于 2009-09-07T08:09:43.670 回答
15

列表只是一个接口。问题是:您的实际List实现是否可序列化?谈到 Java 运行时的标准List实现(ArrayListLinkedList),它们中的大多数实际上已经是。

于 2009-09-07T07:13:19.623 回答