在开发过程中,经常会有这样的需求:把一个对象的属性值赋值给另一个对象的同名属性。
Spring提供了BeanUtils.copyProperties()方法,能快速给同名变量赋值。
定义两个有同名变量的类
定义Role类和User类,他们有同名的变量:roleId 和 roleName
Role类:
@Data public class Role { private String roleId; private String roleName; }
User类:
@Data @ToString public class User { private String userId; private String userName; private String roleId; private String roleName; }
使用BeanUtils.copyProperties()方法赋值
新建role对象,并设置属性值,然后使用BeanUtils.copyProperties()方法将role对象中的属性值赋值给user对象。
public class Test { public static void mn(String[] args) { Role role = new Role(); role.setRoleId("1"); role.setRoleName("admin"); User user = new User(); BeanUtils.copyProperties(role, user); System.out.println(user); } }
从输出结果能看到,同名属性值以赋值给user对象。