使用org.apache.commons.beanutils.BeanUtils,发现复制Bean多次后,将NULL属性也复制到了目标对象,于是换了一个工具类,发现十分好用,可控性高
那就是:cn.hutool的BeanUtil
在代码中使用:
BeanUtil.copyProperties(caseInfoBeanRedis,aplCaseInfoLog,true, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
pom文件中引入:
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>4.1.14</version>
</dependency>
/**
* 复制Bean对象属性<br>
* 限制类用于限制拷贝的属性,例如一个类我只想复制其父类的一些属性,就可以将CopyOptions.editable设置为父类
*
* @param source 源Bean对象
* @param target 目标Bean对象
* @param ignoreCase 是否忽略大小写
* @param copyOptions 拷贝选项,见 {@link CopyOptions}
*/
public static void copyProperties(final Object source, Object target, boolean ignoreCase, CopyOptions copyOptions) {
if (null == copyOptions) {
copyOptions = new CopyOptions();
}
BeanCopier.create(source, target, copyOptions).copy();
}