Java中的简单深拷贝方法
Simple deep copying method in Java
我正在尝试 Java 中的深度复制。到目前为止,我已经在 class (Example
) 中实现了以下方法,我想获取其对象的深层副本(parameter1
和 parameter2
是Example
-class 的构造函数来创建后者的对象):
public Example clone(){
Example clone = new Example(this.parameter1, this.parameter2);
return clone;
}
所以基本上我通过调用相应 class 的构造函数并使用其当前属性作为该构造函数的参数来克隆一个对象。
我的问题是,这似乎太简单了,不可能是真的。特别是因为我在网上查找的解决方案要复杂得多。所以我想知道我的方法有什么问题。
任何 hint/explanation 将不胜感激。
编辑:
这是 Example
-class:
的构造函数
public Example(double parameter1, double parameter2){
this.parameter1 = parameter1;
this.parameter2 = parameter2;
}
使用原语就相对简单了。但是,如果您有任何非原始字段,则仅使用该复制构造函数只会导致该对象的浅表复制。这意味着您将在 类.
之间为您的字段使用相同的对象
我正在尝试 Java 中的深度复制。到目前为止,我已经在 class (Example
) 中实现了以下方法,我想获取其对象的深层副本(parameter1
和 parameter2
是Example
-class 的构造函数来创建后者的对象):
public Example clone(){
Example clone = new Example(this.parameter1, this.parameter2);
return clone;
}
所以基本上我通过调用相应 class 的构造函数并使用其当前属性作为该构造函数的参数来克隆一个对象。 我的问题是,这似乎太简单了,不可能是真的。特别是因为我在网上查找的解决方案要复杂得多。所以我想知道我的方法有什么问题。 任何 hint/explanation 将不胜感激。
编辑:
这是 Example
-class:
public Example(double parameter1, double parameter2){
this.parameter1 = parameter1;
this.parameter2 = parameter2;
}
使用原语就相对简单了。但是,如果您有任何非原始字段,则仅使用该复制构造函数只会导致该对象的浅表复制。这意味着您将在 类.
之间为您的字段使用相同的对象