深拷贝的实现方法

1、我用Apeche包下的org.apache.commons.beanutils.BeanUtils.copyProperties,如果有BigDecaimal为空的时候会报错,非内置对象为空时都会报错

在这个方法里对原始对象的类型分别采用了不同的逻辑:

Map : 通过Map的Key与dest中的属性进行匹配,然后赋值;可以作为source但是不能作为target
DynaBean :DynaBean顾名思义,它是一种可以形成动态java bean的对象,也就是说它内部会存储属性名称、类型以及对应的值,在copy属性时也是将其内部的属性名称与dest对象的属性名称对应后赋值;
标准Java Bean :这个是我们主要进行分析的类型,它是标准的JavaBean对象;与前两者的差异只是在于对原始bean的取值的处理上.

2、Spring包下的org.springframework.beans.BeanUtils.copyProperties

BeanUtils 位于spring-beans模块中,暴露出静态方法copyProperties用以进行属性copy,每个copyProperties最终均调用一个私有静态方法实现属性copy:

3、实现 Cloneable 接口

4、转json

5、序列化

6、mapstruct属于硬编码 效率最高

但是写着比较痛苦,每个转换都得写一个类

MapStruct是一个Java注释处理器,用于生成类型安全的bean映射类。

相关推荐

  1. 拷贝实现方法

    2024-01-26 04:40:03       38 阅读
  2. 拷贝实现方式

    2024-01-26 04:40:03       8 阅读
  3. 拷贝和浅拷贝区别,如何实现一个拷贝

    2024-01-26 04:40:03       13 阅读
  4. js拷贝和浅拷贝经典面试题都有方法可以实现

    2024-01-26 04:40:03       32 阅读
  5. js拷贝与浅拷贝

    2024-01-26 04:40:03       26 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-26 04:40:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-26 04:40:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-26 04:40:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-26 04:40:03       20 阅读

热门阅读

  1. 【Spring】@Component 和 @Configuration 对比

    2024-01-26 04:40:03       35 阅读
  2. MySQL中的DQL及执行顺序

    2024-01-26 04:40:03       34 阅读
  3. ElasticSearch介绍

    2024-01-26 04:40:03       34 阅读
  4. 2、上线过程复盘

    2024-01-26 04:40:03       37 阅读
  5. 论文写作之十个问题

    2024-01-26 04:40:03       37 阅读
  6. openssl3.2/test/certs - 042 - 3072-bit leaf key

    2024-01-26 04:40:03       34 阅读
  7. ip数据库.

    2024-01-26 04:40:03       43 阅读
  8. Express.js 中动态路由解码:path-to-regexp介绍

    2024-01-26 04:40:03       29 阅读
  9. 【前端基础--3】

    2024-01-26 04:40:03       27 阅读
  10. rman不完全备份恢复_归档模式

    2024-01-26 04:40:03       34 阅读
  11. 微信小程序呼叫设备

    2024-01-26 04:40:03       37 阅读