Java深拷贝除了通过实现Cloneable接口,另外还可以通过序列化实现对象的拷贝。
2014-01-10 16:29
603 查看
代码如下: import java.io.Serializable; public class CloneUtils { public static <T extends Serializable> T Clone(T obj) { T cloneObj = null; try { //字节数组流写入内存缓冲区 ByteArrayOutputStream baos = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(baos); oos.writeObject(obj); oos.close(); //读取内存缓冲区数据,转换为字节 ByteArrayInputStream bai = new ByteArrayInputStream( baos.toByteArray()); ObjectInputStream ois = new ObjectInputStream(bai); cloneObj = (T) ois.readObject(); ois.close(); } catch (Exception ex) { ex.printStackTrace(); } return cloneObj; }被拷贝的类,需要实现序列化接口Serializable接口。
相关文章推荐
- 五星-原型模式常使用于以下场景--而JAVA中的任何类只要实现了Cloneable标识接口,就可以使用clone方法来进行对象的拷贝
- java 的对象拷贝(有深浅拷贝两种方式,深拷贝实现的两种方式(逐层实现cloneable接口,序列化的方式来实现))
- Java 基础数据类型 和 深度克隆对象的2种方法(实现Cloneable接口或者实现对象序列化)
- 今天无意中发现JavaBean类基本都要求实现了Serializable接口,以前只是知道序列化以后,可以通过io流的方式将对象序列化和反序列化,进行存取,但不知道为什么需要序列化,今天总结一下
- java对象 深度克隆(不实现Cloneable接口)和浅度克隆
- java对象 深度克隆(不实现Cloneable接口)和浅度克隆
- java对象 深度克隆(不实现Cloneable接口)和浅度克隆
- java 重写接口Cloneable的Clone方法 拷贝对象
- java之实现Cloneable接口的详解,克隆一个对象--对应有浅克隆和深克隆,概念结合代码深入理解
- Java编程中实现Cloneable接口,让类的对象可以复制
- 对象的深复制与浅复制 实现Cloneable接口实现深复制 序列化实现深复制
- java对象 深度克隆(不实现Cloneable接口)和浅度克隆
- 实现Cloneable接口,让类的对象可以复制
- [编写高质量代码:改善java程序的151个建议]建议43 避免对象浅拷贝; 建议44:推荐使用序列化实现对象的深拷贝
- Java利用序列化实现对象的深拷贝
- Java提高篇(五):使用序列化实现对象的拷贝
- 通过实现接口 ICloneable 复制对象
- Java利用序列化实现对象深度clone的方法
- java 序列化实现对象的深拷贝
- 通过实现Cloneable接口和覆盖clone()方法实现深度克隆,以及如何通过ByteArrayIOStream实现克隆