java對象拷貝工具簡要記錄

 項目中經常會用到對象拷貝,對於淺拷貝,一般讓對象實現Cloneable 接口即可,對於深度拷貝,在工作中用到過以下組件。現簡要說明如下。

組件名稱 組件源 性能 拷貝原理 能否對不同屬性名映射 其他特性  
BeanUtils spring 相對較低 反射 支持名稱相同但類型不同的屬性的轉換  
BeanUtils apache 相對較低 反射 支持只匹配相同名稱屬性,不同屬性不進行拷貝  
BeanCopier cglib 較高 ASM字節碼生成class對象    
Dozer net.sf.dozer 較低 底層用反射進行屬性映射 xml 定製化屬性映射  
Orika ma.glasnost.orika 較高 採用javassist生成字節碼對象

代碼中直接進行不同名稱屬性映射,特性更豐富,代碼靈活性更高

 

 

補充:

偶然發現還有效率更高的工具,之後再細作研究吧

Jmapper: google 工具包

MapStruct: 

Selma:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章