JAVA中JavaBean对象之间的拷贝通常是用get/set方法,但如果你有两个属性相同的JavaBean或有大部分属性相同的JavaBean,有个更简便的方法,他们之间的拷贝可以通过copyProperties方法进行。方法如下:
User u = new User();//source
u.setUid("1");
u.setName("tom");
u.setAge((short)18); Student s = new Student();//target BeanUtils.copyProperties(u, s);
System.out.println("[sid]"+s.getSid()+"#[name]"+s.getName()+"#[sex]"+s.getSex()+"#[age]"+s.getAge());
输出如下:
总结:copyProperties方法的作用是将两个对象之前相同的属性进行复制,这里的相同不仅是属性字段名称相同,并且字段类型也要相同。比如上面两个JavaBean对象只有name属性相同,因此只成功复制了name属性的值。
User对象:
public class User { public String uid;
public String name;
public short age; public String getUid() {
return uid;
}
public void setUid(String uid) {
this.uid = uid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public short getAge() {
return age;
}
public void setAge(short age) {
this.age = age;
}
}
Student对象:
public class Student { public String sid;
public String name;
public String sex;
public int age; public String getSid() {
return sid;
}
public void setSid(String sid) {
this.sid = sid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
2018-7-9 更新字段类型不同的说明