目的
一個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不對這些屬性進行處理,需要使用者手動進行處理。