2013-04-24 89 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接口。