org.apache.commons.beanutils.BeanUtils复制Bean多次后,将NULL属性也复制到了目标对象

使用org.apache.commons.beanutils.BeanUtils,发现复制Bean多次后,将NULL属性也复制到了目标对象,于是换了一个工具类,发现十分好用,可控性高

那就是:cn.hutool的BeanUtil,在代码中使用:        

将caseInfoBeanRedis中不为NULL的属性复制到 aplCaseInfoLog中去:

BeanUtil.copyProperties(

caseInfoBeanRedis,  //源Bean对象

aplCaseInfoLog,        //目标Bean对象

true,                           //是否忽略大小写

CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true)       //拷贝选项,是否NULL属性不复制到目标Bean中

);

使用方法:

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();
    }

猜你喜欢

转载自blog.csdn.net/u013282737/article/details/89519119