成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

BeanUtils.copyProperties在拷貝屬性時(shí)忽略空值

李義 / 1427人閱讀

摘要:最近在寫一個(gè)小玩意的時(shí)候,需要在兩個(gè)對(duì)象之間拷貝屬性使用的是可是,有一個(gè)問題就是當(dāng)對(duì)象的鍵值為時(shí)就會(huì)把對(duì)象的對(duì)應(yīng)鍵值覆蓋成空了這不科學(xué)所以找了下面的這個(gè)方式來解決

最近在寫一個(gè)小玩意的時(shí)候,需要在兩個(gè)對(duì)象之間拷貝屬性

使用的是

BeanUtils.copyProperties

可是,有一個(gè)問題

就是當(dāng)src對(duì)象的鍵值為Null時(shí)

就會(huì)把target對(duì)象的對(duì)應(yīng)鍵值覆蓋成空了

這不科學(xué)

所以找了下面的這個(gè)方式來解決

    public static String[] getNullPropertyNames (Object source) {
        final BeanWrapper src = new BeanWrapperImpl(source);
        java.beans.PropertyDescriptor[] pds = src.getPropertyDescriptors();

        Set emptyNames = 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));
    }

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/65304.html

相關(guān)文章

  • 為什么阿里代碼規(guī)約要求避免使用 Apache BeanUtils 進(jìn)行屬性拷貝

    摘要:于是我建議這位小伙伴使用了進(jìn)行屬性拷貝,這為我們的程序挖了一個(gè)坑阿里代碼規(guī)約當(dāng)我們開啟阿里代碼掃描插件時(shí),如果你使用了進(jìn)行屬性拷貝,它會(huì)給你一個(gè)非常嚴(yán)重的警告。大名鼎鼎的提供的包,居然會(huì)存在性能問題,以致于阿里給出了嚴(yán)重的警告。 聲明:本文屬原創(chuàng)文章,始發(fā)于公號(hào):程序員自學(xué)之道,并同步發(fā)布于 https://blog.csdn.net/dadiyang,特此,同步發(fā)布到 sf,轉(zhuǎn)載請(qǐng)注...

    raledong 評(píng)論0 收藏0
  • BeanUtils工具使用細(xì)節(jié)

    摘要:拷貝操作又一個(gè)非常好用的工具類和中分別存在一個(gè),提供了對(duì)。除了支持基本類型以及基本類型的數(shù)組之外,還支持這些類的對(duì)象,其余一概不支持。而且,由于這些類都是采用反射機(jī)制實(shí)現(xiàn)的,對(duì)程序的效率也會(huì)有影響。因此,慎用或者使用看效果如何 java bean拷貝操作又一個(gè)非常好用的工具類 BeanUitls :spring (org.springframework.beans.BeanUtils)...

    afishhhhh 評(píng)論0 收藏0
  • Spring Boot 中 crud如何優(yōu)雅的實(shí)現(xiàn)-附代碼

    摘要:以下內(nèi)容基于如果你使用的也是相同的技術(shù)??梢岳^續(xù)往下閱讀,如果不是可以當(dāng)作參考。編寫的四種方式裸寫最簡單最粗暴也是使用最多的一種方式,在寫的多了之后可以用生成工具生成。 導(dǎo)讀 在目前接觸過的項(xiàng)目中大多數(shù)的項(xiàng)目都會(huì)涉及到: crud相關(guān)的操作, 哪如何優(yōu)雅的編寫crud操作呢?帶著這個(gè)問題,我們發(fā)現(xiàn)項(xiàng)目中大量的操作多是 創(chuàng)建實(shí)體 、刪除實(shí)例、 修改實(shí)體、 查詢單個(gè)實(shí)體、 分頁查詢多個(gè)實(shí)體...

    wing324 評(píng)論0 收藏0
  • Java BeanUtils對(duì)象復(fù)制工具類及方法

    1. BeanUtils.copyProperties(Object source, Object target) 用法: 講source的屬性值復(fù)制到target,屬性為null時(shí)也會(huì)進(jìn)行復(fù)制。 需求:排除null值進(jìn)行復(fù)制 public class CopyObjectUtil { public static String[] getNullPropertyNames(Object...

    Kerr1Gan 評(píng)論0 收藏0
  • 利用反射和注解,拷貝類型相同,屬性名不同的對(duì)象

    摘要:前言最近開發(fā)遇到一個(gè)問題,兩個(gè)對(duì)象進(jìn)行屬性值拷貝。理論上來說可以直接借助來進(jìn)行拷貝,奈何兩個(gè)對(duì)象屬性名不同,懵逼臉。 1、前言 最近開發(fā)遇到一個(gè)問題,兩個(gè)對(duì)象進(jìn)行屬性值拷貝。理論上來說可以直接借助org.springframework.beans.BeanUtils.copyProperties(Object source, Object target)來進(jìn)行拷貝,奈何兩個(gè)對(duì)象屬性名不...

    forrest23 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<