摘要:最近在寫一個小玩意的時候,需要在兩個對象之間拷貝屬性使用的是可是,有一個問題就是當對象的鍵值為時就會把對象的對應鍵值覆蓋成空了這不科學所以找了下面的這個方式來解決
最近在寫一個小玩意的時候,需要在兩個對象之間拷貝屬性
使用的是
BeanUtils.copyProperties
可是,有一個問題
就是當src對象的鍵值為Null時
就會把target對象的對應鍵值覆蓋成空了
這不科學
所以找了下面的這個方式來解決
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)); }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/65304.html
摘要:于是我建議這位小伙伴使用了進行屬性拷貝,這為我們的程序挖了一個坑阿里代碼規約當我們開啟阿里代碼掃描插件時,如果你使用了進行屬性拷貝,它會給你一個非常嚴重的警告。大名鼎鼎的提供的包,居然會存在性能問題,以致于阿里給出了嚴重的警告。 聲明:本文屬原創文章,始發于公號:程序員自學之道,并同步發布于 https://blog.csdn.net/dadiyang,特此,同步發布到 sf,轉載請注...
摘要:拷貝操作又一個非常好用的工具類和中分別存在一個,提供了對。除了支持基本類型以及基本類型的數組之外,還支持這些類的對象,其余一概不支持。而且,由于這些類都是采用反射機制實現的,對程序的效率也會有影響。因此,慎用或者使用看效果如何 java bean拷貝操作又一個非常好用的工具類 BeanUitls :spring (org.springframework.beans.BeanUtils)...
摘要:以下內容基于如果你使用的也是相同的技術棧可以繼續往下閱讀,如果不是可以當作參考。編寫的四種方式裸寫最簡單最粗暴也是使用最多的一種方式,在寫的多了之后可以用生成工具生成。 導讀 在目前接觸過的項目中大多數的項目都會涉及到: crud相關的操作, 哪如何優雅的編寫crud操作呢?帶著這個問題,我們發現項目中大量的操作多是 創建實體 、刪除實例、 修改實體、 查詢單個實體、 分頁查詢多個實體...
1. BeanUtils.copyProperties(Object source, Object target) 用法: 講source的屬性值復制到target,屬性為null時也會進行復制。 需求:排除null值進行復制 public class CopyObjectUtil { public static String[] getNullPropertyNames(Object...
摘要:前言最近開發遇到一個問題,兩個對象進行屬性值拷貝。理論上來說可以直接借助來進行拷貝,奈何兩個對象屬性名不同,懵逼臉。 1、前言 最近開發遇到一個問題,兩個對象進行屬性值拷貝。理論上來說可以直接借助org.springframework.beans.BeanUtils.copyProperties(Object source, Object target)來進行拷貝,奈何兩個對象屬性名不...
閱讀 3322·2021-11-25 09:43
閱讀 1309·2021-11-23 09:51
閱讀 3614·2021-10-11 11:06
閱讀 3705·2021-08-31 09:41
閱讀 3602·2019-08-30 15:53
閱讀 3512·2019-08-30 15:53
閱讀 970·2019-08-30 15:43
閱讀 3312·2019-08-29 14:02