org.springframework.beans.BeanUtils
提供了一个静态方法 copyProperties(Object source, Object target)
,可将一个 JavaBean 对象中的属性值拷贝到另一个 JavaBean 对象的同名属性中。这个方法会进行类型转换,能够自动处理不同类型之间的转换。如果源对象和目标对象中属性名称不同,可以通过添加映射关系的方式进行转换。
以下是一个使用 BeanUtils
进行对象属性拷贝的示例代码:
import org.springframework.beans.BeanUtils;
public class CopyDemo {
public static void main(String[] args) {
// 创建源对象
UserDto source = new UserDto();
source.setUsername("Alice");
source.setPassword("123456");
// 创建目标对象
User target = new User();
// 使用 BeanUtils 进行属性拷贝
BeanUtils.copyProperties(source, target);
// 输出目标对象属性值
System.out.println("Username: " + target.getUsername());
System.out.println("Password: " + target.getPassword());
}
}
class UserDto {
private String username;
private String password;
// 省略 getter 和 setter 方法
}
class User {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
运行结果:
Username: Alice
Password: 123456
可以看到,目标对象 User
的属性值已经被成功地拷贝了过来。
在上面的示例中,我们创建了一个 UserDto
类作为源对象,另一个 User
类作为目标对象。我们使用 BeanUtils.copyProperties()
方法将源对象的属性拷贝到目标对象中。最后输出目标对象的属性值,可以看到它们和源对象的属性值相同。注意这里不需要手动进行类型转换,BeanUtils.copyProperties()
方法会自动进行处理。