摘要:最近在写一个小玩意的时候,需要在两个对象之间拷贝属性使用的是可是,有一个问题就是当对象的键值为时就会把对象的对应键值覆盖成空了这不科学所以找了下面的这个方式来解决
最近在写一个小玩意的时候,需要在两个对象之间拷贝属性
使用的是
BeanUtils.copyProperties
可是,有一个问题
就是当src对象的键值为Null时
就会把target对象的对应键值覆盖成空了
这不科学
所以找了下面的这个方式来解决
public static String[] getNullPropertyNames (Object source) { final BeanWrapper src = new BeanWrapperImpl(source); java.beans.PropertyDescriptor[] pds = src.getPropertyDescriptors(); SetemptyNames = new HashSet (); 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)); }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/65304.html
摘要:于是我建议这位小伙伴使用了进行属性拷贝,这为我们的程序挖了一个坑阿里代码规约当我们开启阿里代码扫描插件时,如果你使用了进行属性拷贝,它会给你一个非常严重的警告。大名鼎鼎的提供的包,居然会存在性能问题,以致于阿里给出了严重的警告。 声明:本文属原创文章,始发于公号:程序员自学之道,并同步发布于 https://blog.csdn.net/dadiyang,特此,同步发布到 sf,转载请注...
摘要:拷贝操作又一个非常好用的工具类和中分别存在一个,提供了对。除了支持基本类型以及基本类型的数组之外,还支持这些类的对象,其余一概不支持。而且,由于这些类都是采用反射机制实现的,对程序的效率也会有影响。因此,慎用或者使用看效果如何 java bean拷贝操作又一个非常好用的工具类 BeanUitls :spring (org.springframework.beans.BeanUtils)...
摘要:以下内容基于如果你使用的也是相同的技术栈可以继续往下阅读,如果不是可以当作参考。编写的四种方式裸写最简单最粗暴也是使用最多的一种方式,在写的多了之后可以用生成工具生成。 导读 在目前接触过的项目中大多数的项目都会涉及到: crud相关的操作, 哪如何优雅的编写crud操作呢?带着这个问题,我们发现项目中大量的操作多是 创建实体 、删除实例、 修改实体、 查询单个实体、 分页查询多个实体...
1. BeanUtils.copyProperties(Object source, Object target) 用法: 讲source的属性值复制到target,属性为null时也会进行复制。 需求:排除null值进行复制 public class CopyObjectUtil { public static String[] getNullPropertyNames(Object...
摘要:前言最近开发遇到一个问题,两个对象进行属性值拷贝。理论上来说可以直接借助来进行拷贝,奈何两个对象属性名不同,懵逼脸。 1、前言 最近开发遇到一个问题,两个对象进行属性值拷贝。理论上来说可以直接借助org.springframework.beans.BeanUtils.copyProperties(Object source, Object target)来进行拷贝,奈何两个对象属性名不...
阅读 3317·2021-11-25 09:43
阅读 1305·2021-11-23 09:51
阅读 3610·2021-10-11 11:06
阅读 3699·2021-08-31 09:41
阅读 3598·2019-08-30 15:53
阅读 3511·2019-08-30 15:53
阅读 967·2019-08-30 15:43
阅读 3309·2019-08-29 14:02