gpt4 book ai didi

java - 克隆 Java 对象

转载 作者:行者123 更新时间:2023-11-30 07:27:46 25 4
gpt4 key购买 nike

我找到了 this answer关于克隆 java 对象。但是,使用那里接受的答案中的方法,克隆对象是否完全是一个新实例?我的意思是不是真正的链接副本?

我问这个是因为我需要克隆的 java 对象是一个“全局对象”,它会在某个时间点更新。在某个时间点,我需要对对象进行“快照”,并将其放在 HashMap 上。

最佳答案

另一个问题中接受的答案简要解释了复制构造函数,是的,此模式将创建新对象并且可以(应该!)用于创建这些快照。

新对象将获得原始对象的当前状态。这对于字符串和 Java 原语来说很容易。

对于对象,它更棘手:当前状态是指向另一个对象的指针,如果其他对象发生变化,这些变化将反射(reflect)在您的快照中。如果您需要避免这种情况,那么您也必须克隆这些对象(深度克隆)。

通过复制构造函数进行克隆的“问题”:可克隆 类需要提供这样的构造函数。很简单,如果您拥有源代码 - 那么您就可以自己实现它。否则,您可能不得不使用 Reflection API 并实现一个克隆工厂,这至少……呃,具有挑战性。

关于java - 克隆 Java 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9495900/

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