关于对象的深度复制

由于近期项目任务较为繁重,所以一直没有抽出时候来更新自己的东西;或许已经被自

勉的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();
}


重点:

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

同时,对象中引用的对象也需要序列化标识;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值