利用序列化实现对象的深层拷贝

2019-12-10 10:32:00
admin
原创
1709
摘要:利用序列化实现对象的深层拷贝

利用序列化实现对象的深层拷贝

1、浅拷贝只是Java提供的一种简单的拷贝机制,不便于直接使用

public class CloneUtils {
     @SuppressWarnings("unchecked")
     public static <T extends Serializable T clone(T obj){
         T cloneObj = null;
         try {
             //写入字节流
             ByteArrayOutputStream out = new ByteArrayOutputStream();
             ObjectOutputStream obs = new ObjectOutputStream(out);
             obs.writeObject(obj);
             obs.close();

             //分配内存,写入原始对象,生成新对象
             ByteArrayInputStream ios = new ByteArrayInputStream(out.toByteArray());
             ObjectInputStream ois = new ObjectInputStream(ios);
             //返回生成的新对象
             cloneObj = (T) ois.readObject();
             ois.close();
         } catch (Exception e) {
             e.printStackTrace();
         }
         return cloneObj;
     }
 }

发表评论
评论通过审核之后才会显示。
文章分类
联系方式
联系人: 郑州-小万
电话: 13803993919
Email: 1027060531@qq.com
QQ: 1027060531
网址: www.wanhejia.com