这篇文章主要介绍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的常见用法
@Testpublic 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怎么用”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。