• java bean的拷贝一般采用两种办法
    1.Spring里面的方法, org.springframework.beans.BeanUtils.copyProperties
    2.Apache里面的方法,org.apache.commons.beanutils.BeanUtils.copyProperties
    但是有需要注意的地方,Spring中BeanUtils.copyProperties(A,B)是将A赋值给B
    Apache中BeanUtils.copyProperties(A,B)是将B赋值给A.
    对于拷贝时空属性的处理,下面是我的方法,采用了Spring的方法
public static Object copyBeanIgnoreNullProperties(Object sourceObj, Object destObj) {if (sourceObj == null || destObj == null) {log.error("copyBean参数缺失!原参数为空?{},目标参数为空?{}", sourceObj == null, destObj == null);return destObj;}try {BeanUtils.copyProperties(sourceObj,destObj,getNoValuePropertyNames(sourceObj));} catch (Exception e) {e.printStackTrace();}return destObj;}private static String[] getNoValuePropertyNames (Object source) {Assert.notNull(source, "传递的参数对象不能为空");final BeanWrapper beanWrapper = new BeanWrapperImpl(source);PropertyDescriptor[] pds = beanWrapper.getPropertyDescriptors();Set<String> noValuePropertySet = new HashSet<>();Arrays.stream(pds).forEach(pd -> {Object propertyValue = beanWrapper.getPropertyValue(pd.getName());if (StringUtils.isEmpty(propertyValue)) {noValuePropertySet.add(pd.getName());} else {if (Iterable.class.isAssignableFrom(propertyValue.getClass())) {Iterable iterable = (Iterable) propertyValue;Iterator iterator = iterable.iterator();if (!iterator.hasNext()) noValuePropertySet.add(pd.getName());}if (Map.class.isAssignableFrom(propertyValue.getClass())) {Map map = (Map) propertyValue;if (map.isEmpty()) noValuePropertySet.add(pd.getName());}}});String[] result = new String[noValuePropertySet.size()];return noValuePropertySet.toArray(result);}

java Bean拷贝忽略空属性相关推荐

  1. air java,Java Bean

    1.Java Bean 简介 Java Bean  (也称为Bean) 是一个遵循特定写法的Java类,只不过这个类需要遵循一些编码的约定,通常具有如下特点: 1).它是一个公开的(public)类: ...

  2. 初识Java Bean

    目录 Java Bean Java Bean的基本概念 Java Bean的特性 一个规范的Java Bean例子 Serializable四问 Serializable是什么? 什么是序列化? 为什 ...

  3. java 文件拷贝保留原来的属性_Java常用属性拷贝工具类使用总结

    开头聊几句 1.网上很多的技术文章和资料是有问题的,要学会辨证的看待,不能随便就拿来用,起码要自己验证一下 2.关注当下,关注此刻,如果你真正阅读本篇文章,请花几分钟时间的注意力阅读,相信你会有收获的 ...

  4. Java 实现对象空属性转null

       简单写一个小工具实现对象空属性转null    最近的业务中,因为涉及到安全性的问题,接口请求对象和sql实体对象不是同一个对象,而是特意写了一个属性相差不大的对象作为请求对象;这样在操作sql ...

  5. java 对象验证非空_判断Bean对象指定字段非空

    判断Bean对象指定字段非空. 方案: 在bean对象上增加注解,指定字段非空,返回异常信息有明确字段描述,省去不必要的if.else判断. 新建注解类 /** * 参数校验,判断字段非空.返回异常文 ...

  6. 简单介绍实体类或对象序列化时,忽略为空属性的操作

    这篇文章主要介绍了实体类或对象序列化时,忽略为空属性的操作,具有很好的参考价值,希望对大家有所帮助.如有错误或未考虑完全的地方,望不吝赐教 第一种,在配置文件配置 在application.xml直接 ...

  7. java+解析未知json_在Java中解析JSON时如何忽略未知属性– Jackson @JsonIgnoreProperties注释示例...

    java+解析未知json 使用Jackson API在Java中解析JSON时的常见问题之一是,当您的JSON包含未知属性(即您的Java类没有对应于所有JSON属性的所有字段)时,该操作将失败. ...

  8. java实体类及类属性判空

    敲代码时判空是必须的,这里分享一下java实体类及类属性判空体会. 一.实体类判空: 1.1实体类判空 如果是读库返回实体类,我们直接判空即可,如下图 1.2如果是先定义了类就不能这样判空了,因为ne ...

  9. 6种常用Bean拷贝工具一览

    在我们日常的工作中,经常需要做对象的拷贝或转化,例如在传递参数时,把入参的DTO转化为PO存入数据库,在返回前端时把PO再转化为VO.如果再分的细一点,可能还会有DO(Domain Object),T ...

最新文章

  1. Sun公司开源游戏服务器Project Darkstar Server——(Sun game server , 简称 sgs)学习笔记(一):sgs简介...
  2. HDUOJ----1166敌兵布阵(线段树单点更新)
  3. 推荐系统笔记(评价指标及效果)
  4. Angular自学笔记(?)ContentChild和ContentChildren
  5. Nginx----OpenResty
  6. BulkLoader类使用
  7. 聚焦openEuler Summit,解锁云原生、开源等领域的实践干货
  8. windows doc快捷键
  9. day15 匿名函数及常用内置函数
  10. jQuery 的 ajax
  11. java datagrid导出excel_Datagrid数据导出到Excel文件给客户端下载的几种方法
  12. Linux操作命令分类详解 - 压缩备份(四)
  13. unity打开android界面报错,Unity3D与Android交互介绍.docx
  14. 由课堂思考生活(作者:张子逸)
  15. 炼数成金深入BI - Kettle 篇
  16. 字节跳动的面试分享,为了拿下这个offer鬼知道我经历了什么
  17. 7.28 结构体 Day18
  18. 工业互联网边缘计算技术发展与行业需求分析
  19. 电脑驱动是什么,它有什么作用呢?
  20. linux虚拟内存盘ramdisk工具,华硕虚拟硬盘工具(ASUS RAM Disk)

热门文章

  1. OpenCV之灰度空间变换
  2. 杜骡的前端面试题(大全)
  3. Node.js 给前端带来了什么?
  4. Alkyne-PEG-OH 炔烃PEG羟基Alkyne-PEG-OH 炔烃PEG羟基
  5. RankNet学习思路+损函感悟+\pi \xu 学xi+交叉熵损函详
  6. 加载调用本地百度地图资源,附地图下载器及黑龙江省1-16级瓦片地图,加载显示marker
  7. 国标GB28181安防摄像头如何通过视频流媒体服务器建设阳光考场?
  8. text to image(一):《GENERATING IMAGES FROM CAPTIONS WITH ATTENTION》
  9. 5、ICE Candidate Gathering and Exchange【ICE Candidate 收集和交换】
  10. Vrpn源码浅析(三)-添加optitrack追踪设备