2017-02-01 8 views
-3

このメソッドに問題があります(完全ではありませんが、問題はこれらの行にあります)。私は行列 "x"を持っていますが、absMatriz関数を経て、値が変わります。私は私のxマトリックスを維持する方法を知りたいです、私は別のマトリックス "www"で保存しようとしましたが、うまくいきません。Java関数のエラー

public Matriz[] problema(Matriz x){ 

     Matriz www=new Matriz(x.m,x.n); //the parameters are the dimensions of the matrix 

     www= x; 

     double mm= max(absMatriz(x)); 

     return www; 
    } 
+0

私が見るとおり、Matrizはオブジェクトです。 www = xと書くと、Javaはwwwとxを使ってヒープ上の同じオブジェクトを指します。本当にxの一意のコピーを作成したい場合は、「新しい」オブジェクトを作成する必要があります。このように:www = new Matriz(x); – DiabolicWords

+1

あなたは 'x'変数を' www'にセーブ/バックアップしませんでした。 'www'と' x' *を同じオブジェクトを指すようにしました。 –

答えて

1

あなたは、absMatrizを変異させる前にxのディープコピーを作成して、改変されていないディープコピーを返すようにしているようです。

How do I copy an object in Java?