项目经验之对象copy
程序员文章站
2022-05-02 09:54:13
...
在做项目时遇到需要copy两个对象之间的属性值,但是有源对象有null值,在使用BeanUtils来copy时null值会覆盖目标对象的同名字段属性值,然后采用以下方法找到null值字段,然后忽略:
public static String[] getNullPropertyNames (Object source) {
final BeanWrapper src = new BeanWrapperImpl(source);
java.beans.PropertyDescriptor[] pds = src.getPropertyDescriptors();
Set<String> emptyNames = new HashSet<String>();
for(java.beans.PropertyDescriptor pd : pds) {
Object srcValue = src.getPropertyValue(pd.getName());
if (srcValue == null) emptyNames.add(pd.getName());
}
String[] result = new String[emptyNames.size()];
return emptyNames.toArray(result);
}
public static void copyPropertiesIgnoreNull(Object src, Object target){
BeanUtils.copyProperties(src, target, getNullPropertyNames(src));
}
上一篇: BeanUtils支持类
推荐阅读
-
优酷项目之 ORM(数据库对象关系映射)代码重写
-
SpringBoot项目实战经验之@ControllerAdvice+RequestBodyAdvice实现请求体全局统一处理
-
组织管理体系推广经验之零-前言 项目管理XPCMM领域模型框架
-
从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之十三 || DTOs 对象映射使用,项目部署Windows+Linux完整版,
-
项目架构经验之谈之SpringBoot单体应用架构分享(二)-多环境配置文件
-
项目架构经验之谈之SpringBoot单体应用架构分享(一)-项目框架篇
-
项目经验之对象copy
-
优酷项目之 ORM(数据库对象关系映射)代码重写
-
SpringBoot项目实战经验之@ControllerAdvice+RequestBodyAdvice实现请求体全局统一处理