利用序列化将java对象深拷贝
2010-08-15 15:30
471 查看
public Object deepClone() throws IOException, OptionalDataException, ClassNotFoundException { // 将对象写到流里 ByteArrayOutputStream bo = new ByteArrayOutputStream(); ObjectOutputStream oo = new ObjectOutputStream(bo); oo.writeObject(this); // 从流里读出来 ByteArrayInputStream bi = new ByteArrayInputStream(bo.toByteArray()); ObjectInputStream oi = new ObjectInputStream(bi); return (oi.readObject()); }
对象所属的类要实现Serializable接口。同时将该方法写入到对象所属的类中。
深拷贝的时候,调用该方法即可。
this.tempTreatHistory = (TreatHistory) this.treatHistory .deepClone();// 将旧病历记录下来放在一个临时的变量中
上面这段代码的意思就是将treatHistory深拷贝到一个临时变量中。
相关文章推荐
- Java利用序列化实现对象的深拷贝
- java提高篇-----使用序列化实现对象的拷贝 (深拷贝)
- Java深拷贝除了通过实现Cloneable接口,另外还可以通过序列化实现对象的拷贝。
- java提高篇(六)-----使用序列化实现对象的拷贝
- java 的对象拷贝(有深浅拷贝两种方式,深拷贝实现的两种方式(逐层实现cloneable接口,序列化的方式来实现))
- java提高篇(五)-----使用序列化实现对象的拷贝
- Java中的反射机制 一个利用反射进行对象拷贝的例子
- Java中的反射机制(二) 一个利用反射进行对象拷贝的例子
- 利用序列化与反序列化对Java对象进行深度复制
- Java中的反射机制(二) 一个利用反射进行对象拷贝的例子
- Java提高篇(五):使用序列化实现对象的拷贝
- java提高篇(六)-----使用序列化实现对象的拷贝
- Java 深拷贝和浅拷贝 利用序列化实现深拷贝
- Java利用序列化实现对象深度clone的方法
- Java中的反射机制(二) 一个利用反射进行对象拷贝的例子
- [编写高质量代码:改善java程序的151个建议]建议43 避免对象浅拷贝; 建议44:推荐使用序列化实现对象的深拷贝
- 【Java进阶五】对象序列化和拷贝
- [改善Java代码] 推荐使用序列化实现对象的拷贝
- java提高篇(六)-----使用序列化实现对象的拷贝
- 利用java序列化进行对象深Clone