2016-05-17 1 views
-2

私はJavaプログラムを持っています。しかし、この行にエラーが表示されますExample Obj2 = new Example (Obj1);エラーが見つかりません。この問題を解決してください。この行のエラー:例Obj2 =新しい例(Obj1)。

class Example 
{ 
    int a,b; 
    Example(int x,int y) 
    { 
    a=x; 
    b=y; 
    } 
    void Display() 
    { 
    System.out.println("Values" +a +b); 
    } 
} 

public class Copy 
{ 
    public static void main(String[] args) 
    { 
    Example Obj1=new Example(10,20); 
    Example Obj2= new Example (Obj1); // Error in this line ,please solved this problem 

    Obj1.Display(); 
    Obj2.Display(); 
    } 
} 
+2

同様の定義 '新しい例(Obj1と)' – nullpointer

+0

はこれを試してください。**例obj2が= obj1.clone()*を持つコンストラクタがありません* – emotionlessbananas

+0

@holidayCoder um no。 – shmosel

答えて

2

この

Example Obj2= new Example (Obj1.a, Obj1.b); 

はあなたが望むものを達成するのを助けるかもしれない試してみてください。

+1

ありがとうございます。 – Zahidul

+0

@Zahidul:これで問題が解決した場合は、答えとして – nullpointer

3

あなたはExampleを受け取るコンストラクタのオーバーロードを定義する必要があります。

class Example { 
    int a,b; 

    Example(int x,int y) { 
     a=x; 
     b=y; 
    } 

    Example(Example copy) { 
     this(copy.x, copy.y); 
    } 
} 
+0

を選択してください、それは巧妙なアプローチですが、 – emotionlessbananas

+1

@holidayCoderクイック検索で表示されるように、Javaでのクローニングにはいくつかの問題があります。しかし、この特定のケースでは、OPのインスタンシエーションをそのまま動作させようとしていました。あなたのコメントに対する私の返答を参照しているなら、単純なテストが示すように、 'clone()'をオーバーライドせずに 'Cloneable'を実装することもできません。 – shmosel

+0

私は最初に(プロのものとして)クローンに取り組む必要があると思う – emotionlessbananas

関連する問題