Чтобы проверить это, я быстро соорудил следующее:Does BeanUtils.copyProperties сделать глубокий клон?
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;
}
}
Это должно быть напечатано A
вместо этого он печатает null
. Что здесь не так? Как я могу действительно копировать свойства из одного объекта в другой (и не указывать их на одни и те же значения), а BeanUtils.copyProperties создать глубокую копию в первую очередь?
Или почему Java-бобы - это не панацея;) – fge