複製屬性的工具類

在開發中進行遇到值對象和實體間的數據複製.

其中最常用的爲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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章