Beanutils.copyProperties( )用法


一、簡介:

       BeanUtils提供對Java反射和自省API的包裝。其主要目的是利用反射機制對JavaBean的屬性進行處理。我們知道,一個JavaBean通常包含了大量的屬性,很多情況下,對JavaBean的處理導致大量get/set代碼堆積,增加了代碼長度和閱讀代碼的難度。

二、用法:

        如果你有兩個具有很多相同屬性的JavaBean,一個很常見的情況就是PO對象(持久對象)和Dto對象(傳輸對象)。傳統的方式是使用類似下面的語句對屬性逐個賦值:

// 逐一賦值  
userDto.setUsername(user.getUsername);  
  
userDto.setPassword(user.getPassword);  
  
userDto.setAge(user.getAge);  
.........
.........

而我們使用 BeanUtils.copyProperties() 方法以后,代碼量大大的減少,而且整體程序看着也簡潔明朗,代碼如下:

BeanUtils.copyProperties(userDto, user);  //第一個參數是轉換后的類,第二個參數是待轉換的類

如果User和UserDto間存在名稱不相同的屬性,則BeanUtils不對這些屬性進行處理,需要手動處理。例如:

User類里面有個createDate 創建時間字段,而UserDto里面是createTime字段。BeanUtils.copyProperties()不會對此字段做任何處理。必須要自己手動處理。

注意:spring和apache的copy屬性的方法源和目的參數的位置正好相反,所以導包和調用的時候都要注意一下。本例使用的是Apache下的包org.apache.commons.beanutils.BeanUtils。

 


免責聲明!

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



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