我有一些 Java 克隆的替代方法。我能否请一些帮助来描述这些替代方案的工作原理:
替代方案是:
• Using a copy constructor for creating a new object as a copy of an existing object
• Creating your own interface with copy methods
这是使用复制构造函数创建新对象作为现有对象的副本的示例:
public class MyClass {
private int myVar;
public MyClass() { this.myVar = 0; }
public MyClass(MyClass other) { this.myVar = other.myVar; }
}
这是使用复制方法创建自己的界面的示例
public interface MyCopy {
Object copy();
}
public class MyClass implements MyCopy {
private int myVar;
public MyClass() { this.myVar = 0; }
public MyClass(int myVar) { this.myVar = myVar; }
public Object copy() { return new MyClass(myVar); }
}
“使用复制构造函数创建新对象作为现有对象的副本”
public class SampleClass
{
int x;
int y;
public SampleClass(SampleClass old) // Copy Constructor
{
this.x = old.x;
this.y = old.y;
}
public SampleClass(int x, int y) // Regular constructor
{
this.x = x;
this.y = y;
}
}
复制构造函数创建传递给构造函数的对象的副本。
“使用复制方法创建自己的界面”
老实说,不确定他们在这里指的是什么。也许他们的意思是创建一个带有 copy() 方法的接口,然后您可以实现该接口,但我不确定您为什么不只使用 Cloneable 接口。