2013-04-24 66 views
-1

我有一些替代Java克隆。我可以请有一定的帮助来形容这些替代品是如何工作的:替代Java克隆

的替代方案是:

• Using a copy constructor for creating a new object as a copy of an existing object 

• Creating your own interface with copy methods 
+0

[重复](http://stackoverflow.com/questions/791787/are-there-any-alternatives-to-implementing-clone-in-java)? – hd1 2013-04-24 03:09:10

+0

闻起来像一个任务。 – Drogba 2013-04-24 03:24:42

回答

1

这是例如使用拷贝构造函数用于创建一个新的对象作为现有对象的副本:

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); } 
} 
0

“使用创建新对象作为现有对象的副本拷贝构造函数”

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接口。