gpt4 book ai didi

java - BeanUtils.copyProperties 是否进行深度克隆?

转载 作者:搜寻专家 更新时间:2023-11-01 03:07:35 26 4
gpt4 key购买 nike

为了测试这一点,我迅速做出了以下:

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首先创建深拷贝?

最佳答案

您需要公开您的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;
}

}
}

当我从 Employee 中删除 public 时,它打印出“null”。

关于java - BeanUtils.copyProperties 是否进行深度克隆?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17200581/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com