JAVA中JavaBean对象之间拷贝的方法

  JAVA中JavaBean对象之间的拷贝通常是用get/set方法,但如果你有两个属性相同的JavaBean或有大部分属性相同的JavaBean,有个更简便的方法,他们之间的拷贝可以通过copyProperties方法进行。方法如下:

1 User u = new User();//source
2 u.setUid("1");
3 u.setName("tom");
4 u.setAge((short)18);
5                 
6 Student s = new Student();//target
7                 
8 BeanUtils.copyProperties(u, s);
9 System.out.println("[sid]"+s.getSid()+"#[name]"+s.getName()+"#[sex]"+s.getSex()+"#[age]"+s.getAge());

输出如下:

总结:copyProperties方法的作用是将两个对象之前相同的属性进行复制,这里的相同不仅是属性字段名称相同,并且字段类型也要相同。比如上面两个JavaBean对象只有name属性相同,因此只成功复制了name属性的值。

User对象:

 1 public class User {
 2 
 3     public String uid;
 4     public String name;
 5     public short age;
 6     
 7     public String getUid() {
 8         return uid;
 9     }
10     public void setUid(String uid) {
11         this.uid = uid;
12     }
13     public String getName() {
14         return name;
15     }
16     public void setName(String name) {
17         this.name = name;
18     }
19     public short getAge() {
20         return age;
21     }
22     public void setAge(short age) {
23         this.age = age;
24     }
25 }

Student对象:

 1 public class Student {
 2 
 3     public String sid;
 4     public String name;
 5     public String sex;
 6     public int age;
 7     
 8     public String getSid() {
 9         return sid;
10     }
11     public void setSid(String sid) {
12         this.sid = sid;
13     }
14     public String getName() {
15         return name;
16     }
17     public void setName(String name) {
18         this.name = name;
19     }
20     public String getSex() {
21         return sex;
22     }
23     public void setSex(String sex) {
24         this.sex = sex;
25     }
26     public int getAge() {
27         return age;
28     }
29     public void setAge(int age) {
30         this.age = age;
31     }
32 }

2018-7-9 更新字段类型不同的说明

原文地址:https://www.cnblogs.com/pcheng/p/7120094.html