对象拷贝

由于业务需要,需要用到对象拷贝,修改拷贝得到的对象不会影响原来的对象,旧对象和新对象为两个完全独立的bean.

注意:拷贝的对象是实体类, 必须实现序列化接口. 实际使用中遇到一个问题,通过拷贝得到的新对象中有两个属性的值丢失了, 但是其他大部分的属性值都是正常的. 

经过排查发现,丢失值的那两个属性是通过继承父类BaseDomain得到的. 但是父类BaseDomain并没有实现序列话接口.  经测试正是由于父类BaseDomain没有实现序列化接口导致拷贝时属性丢失的.   让父类BaseDomain实现序列化接口则解决了.



public Object getCopyObject(Object object) throws Exception {

ByteArrayOutputStream out = new ByteArrayOutputStream();

ObjectOutputStream objectOutputStream = new ObjectOutputStream(out);

objectOutputStream.writeObject(object);

byte[] byteArray = out.toByteArray();

ByteArrayInputStream input = new ByteArrayInputStream(byteArray);

ObjectInputStream objectInputStream = new ObjectInputStream(input);

Object newObject = objectInputStream.readObject();

return newObject;

}

关于子类是否能够继承父类中的私有属性:



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值