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