BeanUtils.copyProperties 方法

一、簡介
	BeanUtils提供對Java反射和自省API的包裝。其主要目的是利用反射機制對JavaBean的屬性進行處理。我們知道,一個JavaBean通常包含了大量的屬性,很多情況下,對javaBean的處理導致大量get/set代碼堆積,增加了代碼長度和閱讀代碼的難度。	
二、功能
	1.spring的BeanUtils.copyProperties(obj1, obj2) 的方法
		將obj1 的屬性值 賦值 給 obj2 的對應屬性,不同的屬性不會進行賦值。
	2.spring的PropertyUtils.copyProperties(obj1, obj2) 的方法
		BeanUtils.copyProperties(obj1, obj2) 方法類似,多提供了類型轉換功能(即發現兩個JavaBean的同名屬性爲不同類型時,在支持的數據類型範圍
	內進行轉換,如:java.util.Date是不被支持的,而它的子類java.sql.Date是被支持的);不過,效率差點。
	3.Apache  的 commons組件 的copyProperties(aValue, aLocal)方法
		從aLocal對象複製屬性到aValue對象(據說:消耗很大)。
轉載於:http://blog.csdn.net/shimiso
對象拷貝開源的解決方案,列出一些常見的如下:

Easy-mapper

這些框架在使用中或多或少都會存在一些問題:
1、擴展性不高,例如自定義的屬性轉換往往不太方便。
2、屬性名相同、類型不匹配或者類型匹配、屬性名不同,不能很好的支持。
3、不支持Java8的lambda表達式。
4、一些框架性能不佳,例如Apache的兩個和Dozer(BeanCopier使用ASM字節碼生成技術,性能會非常好)。
5、對象的clone拷貝往往並不是使用者需要的,一般場景引用拷貝即可滿足要求。
6、部分拷貝還未實現,如:映射註冊後,再次調整映射註冊不了。

發佈了17 篇原創文章 · 獲贊 6 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章