hap*_*dha 5 java clone apache-commons-beanutils
为了测试这一点,我迅速提出了以下内容:
public class Test {
public static void main(String[] args) {
try {
Employee e = new Employee();
e.setName("A");
Employee y = new Employee();
// y=e;
BeanUtils.copyProperties(y, e);
e.setName("B");
System.out.println(y.getName());
} catch (Exception e) {
e.printStackTrace();
}
}
}
class Employee{
String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Run Code Online (Sandbox Code Playgroud)
这应该打印A而不是打印null。这里出了什么问题?我如何才能真正将属性从一个对象复制到另一个对象(而不是让它们指向相同的值),并且BeanUtils.copyProperties 是否首先 创建了深层副本?
您需要公开您的Employee课程。这段代码对我有用(并且可以编译):
package com.sandbox;
import org.apache.commons.beanutils.BeanUtils;
public class Sandbox {
public static void main(String[] args) {
try {
Employee e = new Employee();
e.setName("A");
Employee y = new Employee();
// y=e;
BeanUtils.copyProperties(y, e);
e.setName("B");
System.out.println(y.getName());
} catch (Exception e) {
e.printStackTrace();
}
}
public static class Employee {
String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我删除publicfrom时Employee,它打印“null”。