如何实现一个精妙的对象集合深拷贝,其中内容对象必须遵循序列化接口?
- 内容介绍
- 文章标签
- 相关推荐
本文共计203个文字,预计阅读时间需要1分钟。
“众所周知,Java中对可变对象的深拷贝是头疼的,因为你总是使用引用地址。下面这段代码是一个利用序列化实现深拷贝的利用序列化实现深拷贝的示例:
javapublic static List deepCopy(List src) throws IOException, ClassNotFoundException { // 将对象写入到流中 ByteArrayOutputStream bo=new ByteArrayOutputStream(); ObjectOutputStream oo=new ObjectOutputStream(bo); oo.writeObject(src);
// 从流中读取对象 ByteArrayInputStream bi=new ByteArrayInputStream(bo.toByteArray()); ObjectInputStream oi=new ObjectInputStream(bi); return (List) oi.readObject();}
public static
本文共计203个文字,预计阅读时间需要1分钟。
“众所周知,Java中对可变对象的深拷贝是头疼的,因为你总是使用引用地址。下面这段代码是一个利用序列化实现深拷贝的利用序列化实现深拷贝的示例:
javapublic static List deepCopy(List src) throws IOException, ClassNotFoundException { // 将对象写入到流中 ByteArrayOutputStream bo=new ByteArrayOutputStream(); ObjectOutputStream oo=new ObjectOutputStream(bo); oo.writeObject(src);
// 从流中读取对象 ByteArrayInputStream bi=new ByteArrayInputStream(bo.toByteArray()); ObjectInputStream oi=new ObjectInputStream(bi); return (List) oi.readObject();}
public static

