天天看点

BeanUtils.copyProperties源码的修改

昨天随便说一下pojo和vo和dto的关系给大家2个需求 昨天的博客的地址 https://mp.weixin.qq.com/s?__biz=MzA4MTAwMzA1Mw==&mid=2247484844&idx=1&sn=b950db1607efa078ccc41af61d885dc4&chksm=9f9ad2eea8ed5bf800d2a6d56eddebb33487f1db0741b6a71c0ea262db79480f7fbcb8119ebb&token=722122288&lang=zh_CN#rd 需求

先解决第一个需求

求1:如果B中某字段有值(不为null),则该字段不复制; 也就是B中该字段没值时,才进行复制,适合于对B进行补充值的情况。

解决方案

这里我使用的是自定义注解当自定义注解放在那个字段上面就不进行复制 重写这个复制的源码

B

A

main

可以看到a向b复制 字段departmentname的值在b是3333333333333333333 a的值是2222222在b上加上自定义注解

重写方法

核心是

执行看效果

BeanUtils.copyProperties源码的修改

看到里面的值还是没有改变 解决

需求2:如果A中某字段没值(为null),则该字段不复制 也就是不要把null复制到B当中

上面还是可以用

核心

看结果

BeanUtils.copyProperties源码的修改

看到

日志

希望可以给大家带来看源码的能力,和学习这个方法的源码是干什么的,怎么进行根据需求去改造这个源码,谢谢你的支持,这个问题,百度上也有,但是写的,看不懂,这个写的比较简单,希望给你带来学习的意义,去理解复制的原理

对这个需求有问题可以加我微信