当前位置:   article > 正文

Java - 使用 JSON 序列化/反序列化深拷贝解决方案_jsonarray.tojavalist 无法转深层

jsonarray.tojavalist 无法转深层

问题描述

今天遇到一个深拷贝的问题,之前也调研过很多个深拷贝工具类,但是发现后期有各种问题。

 

原因分析

  • FastClone:因为无参构造问题,对部分类型无法序列化,比如:Boolean 等
  • Kryo:因为无参构造问题,对部分类型无法序列化,比如:LocalDateTime 等,以及从 CPU 火焰图来看,性能要求过高,所以后面转到 FastCLone
  • BeanUtils:无法复制集合问题

根据上述分析来看,想想要不还是使用 Fastjson 来解决这个难题...

解决方案

  1. public class CloneUtil {
  2. public static <T> T copyObject(T object, Class<T> clazz) {
  3. String jsonString = JSON.toJSONString(object);
  4. return JSON.parseObject(jsonString, clazz);
  5. }
  6. public static <T> T[] copyArray(T[] array, Class<T[]> clazz) {
  7. String jsonString = JSON.toJSONString(array);
  8. return JSON.parseObject(jsonString, clazz);
  9. }
  10. public static <T> List<T> copyList(List<T> list, Class<T> clazz) {
  11. String jsonString = JSON.toJSONString(list);
  12. return JSON.parseArray(jsonString, clazz);
  13. }
  14. }
  • Tips:后期还会迭代更新,补充更多深拷贝方法... 
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/68602
推荐阅读
相关标签
  

闽ICP备14008679号