在开发中,经常会出现两个VO或DTO这种实体类之间字段的复制,如果两个类之间字段大部分都一样,就可以采用BeanUtils进行字段的复制,非常简单有效,能节省时间。如果两个类都有50个左右字段,要一一写代码set and get,非得吐血不可。
这个类字段复制的原理非常简单,就是利用java的反射,先获取要复制类的所有属性,然后从原类中取该字段的get方法,如果有,则复制,如果没有则不复制。
pom.xml
新增依赖
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.3</version>
</dependency>
新建两个类,User1和User2
public class User1 {
private String name;//
private int id;//
private String pass;//
}
public class User2 {
private String name;//
private int id;//
}
其余的set和get方法自补
代码参见:com.critc.BeanUtilsTest
,复制方法如下:
public static void main(String[] args) throws Exception {
public static void main(String[] args) throws Exception {
User1 user1 = new User1("test", 1, "123456");//先初始化一个类
User2 user2 = new User2();
BeanUtils.copyProperties(user2, user1);//代码复制
System.out.println(user2.toString());
}