当前位置:   article > 正文

使用fastjson实现对象的深复制_fstjson 拷贝对象

fstjson 拷贝对象

最近遇到一个坑,之前的代码将一个订单对象中的明细,一个list,进行了分组。然后这个list就改变了。再往后,他们认为这个list没变,又将这个list作为最终数据进行了发送。这就导致这个明细回传错误。

查出问题后,我就想,将这个对象如果赋值一份的吧。应该就没问题了。

这里,一定要实现深复制,不然只进行浅复制的话,list内的值还是使用的同一块内存中的。进行分组后,原参数还是会被改变。

所以这里我想到用fastjson提供的序列化能力,先将对象序列化成一个json字符串,然后再反序列化回来。

这样,相当于按照一个字符串序列化了一个新对象,开辟了一个新的内存用于存放这个对象的堆内存内容。这就不会导致原有对象的改变了。

具体代码很简单:

  1. String listStr = JSONObject.toJSONString(param.getDetailItems());
  2. List<Dto> list = JSONObject.parseArray(listStr,Dto.class);

目前这方案是没有问题的。这期间我也了解了很多关于对象复制的问题。后续会找机会把最近找到的对象复制的相关内容写一个博客。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/68479
推荐阅读
相关标签
  

闽ICP备14008679号