轉(zhuǎn)http://www.cnblogs.com/baizhanshi/p/6096810.html
BeanUtils.copyPRoperties(source, target);
首先兩者來源于同一個(gè)包:
| 12 | import org.apache.commons.beanutils.BeanUtils;import org.apache.commons.beanutils.PropertyUtils; |
千萬不要導(dǎo)包錯(cuò)誤,否者會(huì)報(bào)異常。
BeanUtils提供對(duì)java反射和自省API的包裝。其主要目的是利用反射機(jī)制對(duì)JavaBean的屬性進(jìn)行處理。我們知道,一個(gè)JavaBean通常包含了大量的屬性,很多情況下,對(duì)JavaBean的處理導(dǎo)致大量get/set代碼堆積,增加了代碼長(zhǎng)度和閱讀代碼的難度。
以下是幾點(diǎn)要求及說明:
1、 通過反射將一個(gè)對(duì)象的值賦值個(gè)另外一個(gè)對(duì)象(前提是對(duì)象中屬性的名字相同)。
2、 BeanUtils.copyProperties(obj1,obj2); 經(jīng)常鬧混不知道是誰給誰賦值,無意中先到"后付前"這個(gè)詞來幫助自己記憶這個(gè)功能。即將obj2的值賦值給obj1。
3、 如果2中實(shí)例obj2為空對(duì)象,即值new了他的實(shí)例并沒有賦值的話obj1對(duì)應(yīng)的屬性值也會(huì)被設(shè)置為空置。
4、BeanUtils與PropertyUtils對(duì)比(這里對(duì)比copyProperties方法)
PropertyUtils的copyProperties()方法幾乎與BeanUtils.copyProperties()相同,主要的區(qū)別在于后者提供類型轉(zhuǎn)換功能,即發(fā)現(xiàn)兩個(gè)JavaBean的同名屬性為不同類型時(shí),在支持的數(shù)據(jù)類型范圍內(nèi)進(jìn)行轉(zhuǎn)換,PropertyUtils不支持這個(gè)功能,所以說BeanUtils速度會(huì)更快一些,使用更普遍一點(diǎn),犯錯(cuò)的風(fēng)險(xiǎn)更低一點(diǎn)。
舉個(gè)例子:創(chuàng)建兩個(gè)對(duì)象,然后 給一個(gè)對(duì)象賦值 最后把已經(jīng)賦值的對(duì)象 copy到另一個(gè)空對(duì)象里面

新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注