gpt4 book ai didi

java - 我如何在 java 中创建对象的副本,而不是指针

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:40:17 25 4
gpt4 key购买 nike

假设我有一个我创建的对象。我在其中编辑了一些值,因此它与我引用的新对象 () 不同。让我们称该对象为 f1。现在我希望另一个名为 f2 的对象是 f1 的副本而不是指针,这样当我更改 f2 中的值时,它不会同时更改 f1。我将如何在 Java 中执行此操作?

最佳答案

首先,让你的类(class)实现Cloneable界面。没有这个,调用clone()在你的对象上会抛出异常。

接下来,覆盖 Object.clone()所以它返回你的特定类型的对象。实现可以简单地是:

@Override
public MyObject clone() {
return (MyObject)super.clone();
}

除非你需要做一些更复杂的事情。请务必调用 super.clone() , 尽管。

这将一直调用层次结构到 Object.clone() ,它将对象中的每条数据复制到它构造的新数据中。引用是复制的,而不是克隆的,所以如果你想要一个深拷贝(你的对象引用的对象的克隆),你需要在重写的 clone() 中做一些额外的工作。功能。

关于java - 我如何在 java 中创建对象的副本,而不是指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5435826/

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