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

以法莲:

可以说我有一个我创建的对象。我在其中编辑了一些值,因此它与我引用的新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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在javascript中创建json对象的副本,而不是引用

如何在Python中创建对象的副本?

如何在PHP中创建对象的副本?

如何在 C# 中创建对象的绑定副本?

如何在Java中制作对象的部分副本?

如何在Single方法中为不同端点创建对象,而不是在Java中创建if循环

如何在Matlab中创建指向对象的指针数组?

如何在javascript中创建指向对象属性的指针?

如何在PostgreSQL中创建表的副本?

如何在acumatica中创建Cache的副本?

如何在Java中创建对象列表

如何在Java中创建常量对象?

如何在Java中创建图形对象?

如何在Java中创建多个对象?

如何在JavaScript中创建File对象的修改后的副本?

如何在Java中实现包含对象数组的对象的深层副本?

创建对象的副本,然后仅从副本中删除元素,而不是原始元素

使用类和对象时,如何在 C++ 中创建对象的副本(面向对象编程)

如何解析变量的副本而不是指针?

如何制作结构的实际副本(不是指针)

如何创建对象的空副本?

如何在结构中创建空指针?

如何在 JavaScript 中创建指针

当T为对象时如何在dart中创建List <T>的副本,请参见以下代码

如何在C#中复制只读对象并修改副本

如何在Perl 6中制作对象的单独副本?

如何在pyspark中创建数据框的副本?

如何在Ruby中创建副本构造函数

如何在多个目录中创建文件副本?