BeanUtils.copyProperties的用法


實現原理

原理 target.set + source的屬性名(source.get + source的屬性名):所有source必須有get方法,target必須有set方法

一、

springframework.beans.BeanUtils.copyProperties(A,B):把A對象的屬性值賦給B對象相應的屬性

commons.beanutils.BeanUtils.copyProperties(A,B):把B對象的屬性值賦給A對象相應的屬性

二、

1、屬性名相同,類型相同 可以被復制

2、基本類型 與 其對應的封裝類型 可以被復制

3、封裝類型 與 其對應的基本類型 可以被復制

4、其他統統不行

 

三、

如果希望哪個屬性不被復制,使用重載方法

public static void copyProperties(Object source, Object target, String... ignoreProperties) throws BeansException

ignoreProperties傳屬性名稱

 

四、

BeanUtils.copyProperties對bean屬性進行復制,這里的復制屬於淺復制。且不能復制集合和數組

方法1效率更高

解決方法1;

// 通過JSON工具實現List的復制(不僅僅是List,數組和Map等也可以通過類似方法實現復制,需要有無參構造方法,否則報錯)

如:

import com.alibaba.fastjson.JSON;

List<Dog> A= new ArrayList<>();

List<Dog> B= new ArrayList<>();

B = JSON.parseArray(JSON.toJSONString(A),Dog.class);

方法2:循環BeanUtils.copyProperties來復制

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM