可以说我有一个我创建的对象。我在其中编辑了一些值,因此它与我引用的新object()不同。让我们将该对象称为f1。现在我希望另一个称为f2的对象是f1的副本,而不是指针,因此当我更改f2中的值时,它也不会更改f1。我将如何在Java中执行此操作?
首先,让您的类实现该Cloneable
接口。clone()
否则,调用对象将引发异常。
接下来,重写,Object.clone()
以便它返回您特定的对象类型。实现可以简单地是:
@Override
public MyObject clone() {
return (MyObject)super.clone();
}
除非您需要做一些更复杂的事情。不过请确保致电super.clone()
。
这将在层次结构中一直调用Object.clone()
,将对象中的每条数据复制到它构造的新数据中。引用是复制的,而不是克隆的,因此,如果您想要深层复制(对象所引用的对象的克隆),则需要在重写clone()
函数中做一些额外的工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句