- 开发环境
- Spring 版本 4.3.6
- java版本1.8
User.java 该实体类有四个属性, userId,userName,departmentName,departmentId
public class User {
private String userId;
private String userName;
private String departmentName;
private String departmentId;
public String getDepartmentName() {
return departmentName;
}
public void setDepartmentName(String departmentName) {
this.departmentName = departmentName;
}
public String getDepartmentId() {
return departmentId;
}
public void setDepartmentId(String departmentId) {
this.departmentId = departmentId;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
@Override
public String toString() {
return "User [userId=" + userId + ", userName=" + userName + ", departmentName=" + departmentName
+ ", departmentId=" + departmentId + "]";
}
}
创建main方法进行测试
1.复制所有的属性值
- 复制所有的属性值,直接通过BeanUtils工具类,调用copyProperties(Object source, Object target)方法. 第一个参数为带有源数据的对象,第二个参数为需要复制数据的目标对象. 如下面的例子, user对象设置了数据, user2对象只是创建出来了.没有设置数据.
public static void main(String[] args) {
User user = new User();
user.setUserId("123");
user.setUserName("周杰伦");
user.setDepartmentName("安全部门");
user.setDepartmentId("666");
User user2 = new User();
BeanUtils.copyProperties(user, user2);
System.out.println("user2: "+user2);
}
上面的代码打印的结果如下 可以看到user2对象的属性值,全部由user对象赋值过来了.
依旧是调用copyProperties方法,但是后面写了userId和userName的User属性的两个字符串. 表示不复制这两个属性
public static void main(String[] args) {
User user = new User();
user.setUserId("123");
user.setUserName("周杰伦");
user.setDepartmentName("安全部门");
user.setDepartmentId("666");
User user2 = new User();
BeanUtils.copyProperties(user, user2,"userId","userName");
System.out.println("user2: "+user2);
}
控制台打印如下 可以看到userId 和userName属性为null了, 表示忽略了此属性