使用BeanUtils工具类时,应先导入commons-beanutils.jar包
使用规则:
BeanUtils.copyProperties(dest, orig)其中dest类和orig两个类中的属性数量,类型都可以不相同,但是,属性的名字要相同,如果两个名字相同而类型不相同的类属性copy值 时,如果类型无法转换("java"copy给一个Int型属性)则目标属性保持默认的值。
例如:
Person.java
public class Person {
private double id;
private int name;
public double getId() {
return id;
}
public void setId(double id) {
this.id = id;
}
public int getName() {
return name;
}
public void setName(int name) {
this.name = name;
}
Student.java
public class Student {
private int id;
private String name;
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
通过 BeanUtils.copyProperties(p,s)是可以将s中的值copy到p中的
BeanUtils与PropertyUtils的相同点:
1、两个对象的同名方法的作用都是相同的。
2、使用时都要引入commons-beanutils.jar包
3、copy与被copy的两个对象的属性数量、名字可以不相同,但是set方法后的名字(字符串)要相同。
BeanUtis与PropertiesUtils的不同点:
1、当两个类中的同名(get后的名字)属性的类型不相同时,BeanUtils会自动转换,转换不过来则保留目标类中属性的原来值,如果原来没有值,则给一个对应类型的初始化值,而PropertyUtils对象则不会转换的。
2、PropertyUtils速度更快一些,而BeanUtils得速度比较慢