問題描述:在最近做專案的時候,使用到了物件copy,而只需要拷貝源物件的非空屬性,為null的屬性不進行copy。
解決方法
1.hutool開源庫為我們提供了更為強大的bean工具-beanutil
cn.hutool
hutool-all
4.1.14
//複製舊的屬性過來,忽略null屬性,忽略null值,有值的以新的為主,null的則以舊為主
beanutil.copyproperties(sourceobject, targetobject,
true, copyoptions.create().setignorenullvalue(true).setignoreerror(true));
注:在測試過程中發現hutool 5.x已經不支援該方法
2.自己定義乙個屬性為null不複製的方法
//獲取到物件中值為null的屬性名稱
public static string getnullpropertynames (object source)
}string result = new string[emptynames.size()];
return emptynames.toarray(result);
}//物件copy,第三個引數指忽略這些屬性值的copy
public static void copypropertiesignorenull(object src, object target)
copypropertiesignorenull 就是自己定義的方法,借助beanutils.copyproperties();(copyproperties預設是會把null的給替換掉) BeanUtils只拷貝物件非null屬性
在最近做專案的時候,使用到了物件copy,而只需要拷貝源物件的非空屬性,為null的屬性不進行吧copy。而beanutil.copyproperties sourceobject,targetobject 查了資料,解決方法如下 1 hutool開源庫為我們提供了更為強大的bean工具 beanu...
BeanUtils只拷貝物件非null屬性
最近進行物件操作,使用了糊塗工具,感覺非常強大 cn.hutool groupid hutool all artifactid 4.1.14 version dependency 複製舊的屬性過來,忽略null屬性,忽略null值,有值的以新的為主,null的則以舊為主 beanutil.copyp...
copy 複製物件
作用 提供一些函式,可以使用淺副本或深副本語義複製物件 1.淺副本 copy 建立的淺副本 shallow copy 是乙個形容器,其中填充原物件內容的引用,建立list物件的乙個淺副本時,會構造乙個新的list.並將原物件的元素追加到這個list。1.深副本 deepcopy 建立的深副本是乙個新...