BeanUtils.copyProperties 与 PropertyUtils.copyProperties 用法及区别
一、简介:
BeanUtils 提供对 Java 反射和自省 API 的包装。其主要目的是利用反射机制对 JavaBean
的属性进行处理。我们知道,一个 JavaBean 通常包含了大量的属性,很多情况下,对
JavaBean 的处理导致大量 get/set 代码堆积,增加了代码长度和阅读代码的难度。
二、用法:
BeanUtils 是这个包里比较常用的一个工具类,这里只介绍它的 copyProperties()方法。
该方法定义如下:
public static void copyProperties(java.lang.Object dest,java.lang.Object orig)
throws java.lang.IllegalAccessException,
java.lang.re$ect.InvocationTargetException
如果你有两个具有很多相同属性的 JavaBean,一个很常见的情况就是 Struts 里的 PO 对
象(持久对象)和对应的 ActionForm,例如 Teacher 和 TeacherForm。我们一般会在
Action 里从 ActionForm 构造一个 PO 对象,传统的方式是使用类似下面的语句对属性逐
个赋值:
//得到 TeacherForm
TeacherForm teacherForm=(TeacherForm)form;
//构造 Teacher 对象
Teacher teacher=new Teacher();
//赋值
teacher.setName(teacherForm.getName());
teacher.setAge(teacherForm.getAge());
teacher.setGender(teacherForm.getGender());
teacher.setMajor(teacherForm.getMajor());
teacher.setDepartment(teacherForm.getDepartment());
//持久化 Teacher 对象到数据库