码迷,mamicode.com
首页 > 其他好文 > 详细

关于对象的深度复制

时间:2015-01-27 16:22:32      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:java   深拷贝   序列化   

由于近期项目任务较为繁重,所以一直没有抽出时候来更新自己的东西;或许已经被自勉的coder拉开很大的距离技术分享,今天看到一个深度复制的问题引起了我的反思:

在这之前,我一般考虑到复制一个对象的场景时,总是会在对应的类型声明中覆盖一个 克隆方法来解决问题;这样确实行之有效,但如果系统中已经有成熟的规范时,此时或许跟序列化的方式结合可能更好,可以参考如下例子:

public Object deepCopy(){
  //写入
  ByteArrayOutputStream bOut = new ByteArrayOutputStream();
  ObjectOutputStream oOut = new ObjectOutputStream(bOut);
  oOut.writeObject(this);
  //读回
  ByteArrayInputStream bIn = new ByteArrayInputStream(bOut.toByteArray());
  ObjectInputStream oIn = new ObjectInputStream(bIn);
  return oIn.readObject();
}


重点:

自我复制的对象类型需实现序列化接口。

关于对象的深度复制

标签:java   深拷贝   序列化   

原文地址:http://blog.csdn.net/cqstart116/article/details/43195633

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!