Java中BeanUtils怎么用

这篇文章主要介绍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怎么用”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!