Eph*_*aim 6 java pointers object
可以说我有一个我创建的对象.我在其中编辑了一些值,因此它与我引用的新对象()不同.让我们调用该对象f1.现在我想叫F2另一个目的是F1而不是一个指针的副本,所以,当我改变F2的值,它不会也随之变化F1.我将如何在java中执行此操作?
Jon*_*han 17
首先,让您的类实现Cloneable接口.如果没有这个,调用clone()你的对象将抛出异常.
接下来,覆盖,Object.clone()以便它返回您特定类型的对象.实现可以简单地是:
@Override
public MyObject clone() {
    return (MyObject)super.clone();
}
除非你需要更复杂的东西.不过请确保你打电话super.clone().
这将在层次结构中一直调用Object.clone(),将对象中的每个数据复制到它构造的新数据.引用是复制的,而不是克隆的,因此如果您需要深层复制(对象引用的对象的克隆),则需要在重写的clone()函数中执行一些额外的工作.