在開發(fā)中,經(jīng)常會出現(xiàn)兩個VO或DTO這種實體類之間字段的復(fù)制,如果兩個類之間字段大部分都一樣,就可以采用BeanUtils進行字段的復(fù)制,非常簡單有效,能節(jié)省時間。如果兩個類都有50個左右字段,要一一寫代碼set and get,非得吐血不可。
這個類字段復(fù)制的原理非常簡單,就是利用java的反射,先獲取要復(fù)制類的所有屬性,然后從原類中取該字段的get方法,如果有,則復(fù)制,如果沒有則不復(fù)制。
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,復(fù)制方法如下:
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);//代碼復(fù)制
System.out.println(user2.toString());
}