天天看點

使用BeanUtils.copyProperties()快速拷貝對象

目的

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

使用

如果定義了兩個具有很多相同屬性的Bean,我們如果想把前一個Bean的屬性傳遞給後一個Bean,通常的做法是将前一個Bean的屬性通過set方法逐一指派給後一個Bean。

// 擷取Form 表單資料

Form uForm = (Form) form;

// 構造一個User對象

User user = new User();

// 逐一指派

user.setUsername(uForm.getUsername);

user.setPassword(uForm.getPassword);

user.setAge(uForm.getAge);
           

當表單資料比較多的時候,使用這種方法将顯得非常繁瑣。

而當我們使用 BeanUtils.copyProperties() 方法以後,代碼量會大大的減少,而且整個代碼看起來也非常簡潔明了。

// 擷取 Form 表單資料

Form uForm = (Form) form;

// 構造一個User對象

User user = new User();

// 從Form中拷貝屬性到User對象中

BeanUtils.copyProperties(uForm,user);
           

注意:如果User和Form 間存在名稱不相同的屬性,則BeanUtils不對這些屬性進行處理,需要使用者手動進行處理。