Java深拷贝除了通过实现Cloneable接口,另外还可以通过序列化实现对象的拷贝。

来源:互联网 发布:php session读取 编辑:程序博客网 时间:2024/05/20 10:53
代码如下: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接口。
0 0