Java Object Clone
User user = new User(); user.setName("tom"); User user1 = new User(); user1.setName("jerry"); Listlist = new ArrayList<>(); list.add(user1); user.setChildren(list); user.setUser(user1); System.out.println(user); User2 user2 = new User2(); BeanUtils.copyProperties(user2,user); System.out.println(user2); Listchildren = user2.getChildren(); // 此处会出现错误 for (User2 user21 :children ) { System.out.println(user21); } User user3 = (User) BeanUtils.cloneBean(user); System.out.println(user3);
user:
package com.test;import java.util.List;public class User { private String name; private List children; private User user; public User getUser() { return user; } public void setUser(User user) { this.user = user; } @Override public String toString() { return "User{" + "name='" + name + '\'' + ", children=" + children + ", user=" + user + '}'; } public String getName() { return name; } public void setName(String name) { this.name = name; } public List getChildren() { return children; } public void setChildren(List children) { this.children = children; } }
user2:
package com.test;import java.util.List;public class User2 { private String name; private List children; private User2 user2; public User2 getUser2() { return user2; } public void setUser2(User2 user2) { this.user2 = user2; } @Override public String toString() { return "User2{" + "name='" + name + '\'' + ", children=" + children + ", user2=" + user2 + '}'; } public String getName() { return name; } public void setName(String name) { this.name = name; } public List getChildren() { return children; } public void setChildren(List children) { this.children = children; } }
pom:
https://mvnrepository.com/artifact/commons-beanutils/commons-beanutils --><dependency> <groupId>commons-beanutilsgroupId> <artifactId>commons-beanutilsartifactId> <version>1.9.3version>dependency>
注意和spring beanutils的区别:
https://blog.csdn.net/langqiao123/article/details/72961383/
传说spring Beanutils的性能要更好一些;