摘要:最近在寫一個(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(); SetemptyNames = 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
摘要:于是我建議這位小伙伴使用了進(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)注...
摘要:拷貝操作又一個(gè)非常好用的工具類和中分別存在一個(gè),提供了對(duì)。除了支持基本類型以及基本類型的數(shù)組之外,還支持這些類的對(duì)象,其余一概不支持。而且,由于這些類都是采用反射機(jī)制實(shí)現(xiàn)的,對(duì)程序的效率也會(huì)有影響。因此,慎用或者使用看效果如何 java bean拷貝操作又一個(gè)非常好用的工具類 BeanUitls :spring (org.springframework.beans.BeanUtils)...
摘要:以下內(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í)體...
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...
摘要:前言最近開發(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ì)象屬性名不...
閱讀 3330·2021-11-25 09:43
閱讀 1314·2021-11-23 09:51
閱讀 3617·2021-10-11 11:06
閱讀 3729·2021-08-31 09:41
閱讀 3607·2019-08-30 15:53
閱讀 3517·2019-08-30 15:53
閱讀 974·2019-08-30 15:43
閱讀 3317·2019-08-29 14:02