可以说我有一个我创建的对象。我编辑了其中的一些值,因此它与我引用的 new object() 不同。我们将该对象称为 f1。现在我想要另一个名为 f2 的对象是 f1 的副本而不是指针,这样当我更改 f2 中的值时,它不会同时更改 f1。我将如何在java中做到这一点?
首先,让你的班级实现Cloneable
界面。如果没有这个,调用clone()
在你的对象上会抛出异常。
接下来,覆盖Object.clone()
所以它返回您的特定类型的对象。实现可以简单地是:
@Override
public MyObject clone() {
return (MyObject)super.clone();
}
除非你需要做一些更复杂的事情。确保你打电话super.clone()
, 尽管。
这将一路向上调用层次结构Object.clone()
,它将对象中的每条数据复制到它构造的新数据中。引用是复制的,而不是克隆的,因此如果您想要深层复制(对象引用的对象的克隆),您需要在覆盖的对象中做一些额外的工作clone()
功能。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)