简介
JAVA自带的 BeanUtils.copyProperties会copy源对象的所有属性,无法保留目标对象的非空属性 。
使用 BeanUtil.copyProperties会copy源对象的非空数据,保留目标对象的非空数据 。
关于hutool
Hutool
是一个功能丰富且易用的Java工具库
https://plus.hutool.cn/docs/#/
导入依赖
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.3.8</version>
</dependency>
注意:
5.几版本4.几版本略有不同
主要代码
BeanUtil.copyProperties(oldUser, newUser, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
代码实现
SysUser newUser = new SysUser();
newUser.setUserName("张三");
SysUser oldUser = new SysUser();
oldUser.setAge(20);
BeanUtil.copyProperties(oldUser, newUser, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
System.out.println(newUser);
另:
4.版本如下
依赖
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>4.1.14</version>
</dependency>
主要代码
BeanUtil.copyProperties(oldUser, newUser, true, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));