如何使BeanUtils不對空值進行複製

2021-10-01 14:04:06 字數 946 閱讀 2803

在開發過程中,我們通常會用到org.springframework.beans.beanutils;這個類有時可以提高我們的開發效率,

beanutils.copyproperties(request, news);

上邊的reqeust和news都是同乙個類的引用,意思就是將request類中的所有屬性值賦值到news中所有對應的屬性值,但是這樣問題就來了,如果request中一些屬性值為空,而news中對應的屬性值不為空,賦值後news中這些原本不為空的屬性就為空了,這裡我們用到另外乙個方法

最後乙個引數就是賦值時忽略這些值的賦值,使target中這些屬性不被覆蓋

但是我們還要知道source中哪些值為空,才能保證這些空值不會去覆蓋target中的值,所以可以封裝乙個方法,找出source中的空值屬性,返回乙個string陣列,放到第三個引數中,使賦值時忽略這些值

封裝方法如下

/**

* 配合beanutils設定對源物件中空的元素不進行複製,避免了目標物件某屬性原本不為空,賦值後為空

*/public

static string[

] getnullpropertynames (object source)

} string[

] result =

newstring

[emptynames.

size()

];return emptynames.

toarray

(result)

;}

具體使用示例:

beanutils.copyproperties(request,news,utils.getnullpropertynames(request));

這樣就不會對source中的空值進行複製

如何使用BeanUtils

beanutils 的使用 它可以將基本資料型別的資料自動轉換 一 搭建 beanutils 的開發環境 在專案中匯入相應的 jar檔案 commons beanutils 1.8.3.jar commons logging.jar log4j.jar 二 通過 beanutils 給bean 中的...

如何讓innerHTML 不對 lt 轉義

問題 xx.innerhtml 網頁上輸出 我希望 就輸出 解決方案 在innerhtml 賦值前,對字串,進行如下處理 var tagstoreplace function replacetag tag function safe tags replace str 原理 轉義字串 escape s...

linux時間不對如何解決

51休息 電腦待機了.虛擬機器中的linux系統也休息了,可是51來了後,在使用虛擬機器是產生的時間戳,總是不對,乙個bug這一頓排查.忽然靈光一現,是不是伺服器的時間不對,所以php 列印的時間戳不對 date 命令檢視 果真如此剩下就是解決時間不對的問題 首先得確保這些伺服器都能ping通否則是...