您好,登錄后才能下訂單哦!
這篇文章主要介紹Java中BeanUtils怎么用,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
BeanUtils使用步驟
步驟一:項目中導入commons-beanutils.jar包
步驟二:在項目中就可以使用對javaBean的一些相關操作,比如:
1). 給對象賦值:BeanUtils.setProperty(對象, 屬性名, 屬性值);
2). 把一個javaBean的屬性拷貝到另一個javaBean對象中: BeanUtils.copyProperties(源對象,新對象);
...
BeanUtils 常用方法
常用方法 | 描述 |
---|---|
copyProperties(Object dest, Object orig) | 對象拷貝 |
copyProperty(Object bean, String name, Object value) | 指定屬性拷貝到指定的對象中 |
cloneBean(Object bean) | 對象的克隆 |
populate(Object bean, Map<String,? extends Object> properties) | 將map數據拷貝到javabean中(map的key要與javabean的屬性名稱一致) |
setProperty(Object bean, String name, Object value) | 設置指定屬性的值 |
案例
1.創建一個學生實體類(Student.java)
public class Student{
private String name;
private int age;
private String sex;
public Student() {
}
getXxx和setXxx省略……
}
2.測試BeanUtils的常見用法
@Test
public void BeanUtilsTest() throws Exception {
Map<String, Object> map = new HashMap<String, Object>();
map.put("name", "張三");
map.put("age", 12);
map.put("sex", "男");
// 將map數據拷貝到Student中
Student stu= new Student();
BeanUtils.populate(stu, map);
//Student [name=張三, age=12, sex=男]
System.out.println(stu);
// 對象的拷貝
Student stu1 = new Student ();
BeanUtils.copyProperties(stu , stu1 );
//Student [name=張三, age=12, sex=男]
System.out.println(stu1);
// 拷貝指定的屬性
Student stu2 = new Student ();
BeanUtils.copyProperty(stu2 , "name", "李四");
// Student [name=李四, age=0, sex=null]
System.out.println(stu2 );
// 設置指定的屬性
BeanUtils.setProperty(stu2, "sex", "女");
// Student [name=李四, age=0, sex=女]
System.out.println((stu2);
// 克隆對象
Object object = BeanUtils.cloneBean(stu2);
// Animal [name=李四, age=0, sex=女]
System.out.println(object);
}
注意事項:BeanUtils在進行數據拷貝中,不管數據是否有值,會直接覆蓋,這樣就會存在有些需求無法滿足的情況,不如說當拷貝的值為null時,不允許覆蓋,可以進行如下操作:
public static String[] getNullPropertyNames (Object source) { final BeanWrapper src = new BeanWrapperImpl(source); java.beans.PropertyDescriptor[] pds = src.getPropertyDescriptors(); Set<String> emptyNames = new HashSet<String>(); for(java.beans.PropertyDescriptor pd : pds) { Object srcValue = src.getPropertyValue(pd.getName()); if (srcValue == null) emptyNames.add(pd.getName()); } String[] result = new String[emptyNames.size()]; return emptyNames.toArray(result); }
BeanUtils.copyProperties(源對象,新對象,getNullPropertyNames (源對象));
以上是“Java中BeanUtils怎么用”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。