java - 复制后隔离JAVA中的对象

标签 java spring spring-boot

我有两个对象 A aB b :

A a = new A();
B b = new B();

我需要复制a进入b但是当我在a中设置一些属性时,我仍然在 b 中得到相同的结果克隆之后。例如:

C c = new C();
c.setName("c name");
a.setAtt1("toto");
a.setAtt2("toto");
a.setAttC(c);

BeanUtils.copyproperties(a,b);

a.setAttC(null);

当我显示b时我发现AttC对象是null比如在设置之前处理了副本nulla .

您知道如何在复制后隔离两个对象吗?

最佳答案

由于您将属性从 a 复制到 b,因此两个对象中对 c 的引用保持相同。您需要执行深度复制,将对象 c 克隆到 b 中。详情请引用以下链接: https://commons.apache.org/proper/commons-lang/javadocs/api-release/org/apache/commons/lang3/SerializationUtils.html#clone(T)

关于java - 复制后隔离JAVA中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49796437/

相关文章:

java - 如何获取Spring Batch中某个步骤的退出消息?

java - 如何调试 ProxyFactoryBean 拦截器未触发

ssl - 别名为 mykey 的 SAML-Key 没有私钥

java - 通过 rest-engine 启动时从 Camunda 进程返回数据

java - hibernate 异常 Null 值被分配给原始类型 setter 的属性

java - Java从单链表中删除第一个节点

java - 在 Spring Boot 中启动时从文件中读取数据以在 Controller 中使用

java - @SpringBootTest 需要数据库连接吗?

java - 在 Spring Boot 应用程序中使用 redis 创建存储库

java - 除了基于 token 的身份验证之外,还允许 Rest api 端点使用 http 基本身份验证