博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
比较一个对象,如是这个对象的某一个属性不为空,把他copy到另一个有这个属性的bean中...
阅读量:6304 次
发布时间:2019-06-22

本文共 2051 字,大约阅读时间需要 6 分钟。

hot3.png

import java.beans.PropertyDescriptor;import java.lang.reflect.InvocationTargetException;import java.util.Map;import org.apache.commons.beanutils.BeanUtils;import org.apache.commons.beanutils.PropertyUtils;public class CopyBean { /**      * 比较一个对象,如是这个对象的某一个属性不为空,把他copy到另一个有这个属性的bean中      *       * @param result 要copy到的bean      * @param orig 原来BEAN      * @throws InvocationTargetException      * @throws IllegalAccessException      */      public static void copyOrigNotNullPropertyToDestBean(Object result, Object orig) throws IllegalAccessException,              InvocationTargetException {          // Validate existence of the specified beans          if (result == null) {              throw new IllegalArgumentException("No destination bean specified");          }          if (orig == null) {              throw new IllegalArgumentException("No origin bean specified");          }                    if (orig instanceof Map) {              throw new IllegalArgumentException("No support map");          }            /* if (orig is a standard JavaBean) */          PropertyDescriptor origDescriptors[] = PropertyUtils.getPropertyDescriptors(orig);          for (int i = 0; i < origDescriptors.length; i++) {              String name = origDescriptors[i].getName();              if ("class".equals(name)) {                  continue; // No point in trying to set an object's class              }              if (PropertyUtils.isReadable(orig, name) && PropertyUtils.isWriteable(result, name)) {                  try {                      Object value1 = PropertyUtils.getSimpleProperty(orig, name);                      if (value1 != null) {                           if (PropertyUtils.isReadable(result, name) && PropertyUtils.isWriteable(result, name)) {                               BeanUtils.copyProperty(result, name, value1);                           }                      }                  } catch (NoSuchMethodException e) {                  }              }          }        } }

转载于:https://my.oschina.net/u/933822/blog/603324

你可能感兴趣的文章
IOS中图片(UIImage)拉伸技巧
查看>>
【工具】系统性能查看工具 dstat
查看>>
基于zepto或jquery的手机端弹出框成功,失败,加载特效
查看>>
php引用(&)
查看>>
关押罪犯
查看>>
k8s-高可用架构设计
查看>>
第93天:CSS3 中边框详解
查看>>
第189天:BOM属性方法
查看>>
操作系统
查看>>
volatile小记
查看>>
Socket通道
查看>>
表单验证的前端验证后端验证
查看>>
sqlite错误 The database disk image is malformed database disk image is malformed 可解决
查看>>
备库报 ORA-00313、ORA-00312、ORA-27037
查看>>
windows10,nodejs安装步骤
查看>>
python 实现有序字典
查看>>
Linux装python3
查看>>
Linux指令:top
查看>>
Android: 利用SurfaceView绘制股票滑动直线解决延迟问题
查看>>
layui框架之table表格操作数据实现分页
查看>>