zoukankan      html  css  js  c++  java
  • 复制属性的工具类

    转自:https://blog.csdn.net/howroad/article/details/91308579

    在开发中进行遇到值对象和实体间的数据复制.

    其中最常用的为Apache BeanUtilsBean的copyProperties.

    本次测试发现该工具可兼容大部分数据格式,但在Java.sql.Date和java.util.Date复制时,原数据如为空将发送报错.

    通过注册BeanUtilsBean的转换器,简单封装copyProperties方法.

    完成效果: 调用封装后的工具类方法复制对象属性时, 遇到Date数据一律给予新对象对应属性赋值为null.

    最终使用:

    Attach attach = new Attach();
    attach.setCreatePerson("123");
    //attach.setCreateTime(new Date());
    EbankApply ebankApply = new EbankApply();
    EbankApply ebankApply2 = new EbankApply();
    EbankApply ebankApply4 = new EbankApply();
    try {
    org.apache.commons.beanutils.BeanUtils.copyProperties(ebankApply, attach);//Date 数据为空时报错
    org.apache.commons.beanutils.PropertyUtils.copyProperties(ebankApply2, attach);//正常
    org.springframework.beans.BeanUtils.copyProperties(attach, ebankApply4);//注意参数顺序和Apache的相反
    } catch (IllegalAccessException e) {
    e.printStackTrace();
    } catch (InvocationTargetException e) {
    e.printStackTrace();
    } catch (NoSuchMethodException e) {
    e.printStackTrace();
    }
    System.out.println(attach);
    System.out.println(ebankApply);
    System.out.println(ebankApply2);
    System.out.println(ebankApply4);
    所以不使用BeanUtil,使用PropertyUtils
    ————————————————
    版权声明:本文为CSDN博主「howroad」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/howroad/article/details/91308579

  • 相关阅读:
    Codeforces 912E
    Codeforces 912D
    洛谷P4980 【模板】Polya定理
    51nod1222最小公倍数计数
    15 Puzzle LightOJ
    loj2734「JOISC 2016 Day 2」女装大佬 || 洛谷P3615 如厕计划
    Jongmah Codeforces
    洛谷P4238【模板】多项式求逆
    洛谷P4721 【模板】分治 FFT
    FFT,NTT
  • 原文地址:https://www.cnblogs.com/sharpest/p/11406778.html
Copyright © 2011-2022 走看看