Java复制一个对象并且不想复制其中的空值属性,你可以通过几种方式来实现。
Java类库
- 使用Java中的BeanUtils类。
这个类提供了一个copyProperties()方法,可以用来复制一个对象的属性到另一个对象。默认情况下,copyProperties()方法会复制所有属性,包括空值属性。但是,你可以使用BeanUtils中的BeanUtilsBean类来设置nullsAreIgnored属性为true,这样就可以忽略掉源对象中的空值属性。示例代码如下:BeanUtilsBean beanUtilsBean = BeanUtilsBean.getInstance(); beanUtilsBean.getConvertUtils().register(false, true, 0); beanUtilsBean.copyProperties(destObject, srcObject);
第三方库
-
Apache Commons Lang库中的ObjectUtils类。
这个类提供了一些有用的方法来操作对象,包括复制对象并忽略空值属性的方法。示例代码如下:ObjectUtils.clone(srcObject, new CloneNullsStrategy());
其中,CloneNullsStrategy类是一个实现了org.apache.commons.lang3.ObjectUtils.Null的自定义策略,它用于在复制对象时忽略空值属性。
-
hutool的BeanUtil类。
示例代码如下://null,表示无限制,true表示若父类中属性值为空则忽略,不传给子类 private final CopyOptions copyOption = CopyOptions.create(null, true); BeanUtil.copyProperties(srcObject, destObject, copyOption);