2011-01-06 14 views
0

私は大学でやっているこのコードを持っています。最初のコードは期待通りに機能し、2番目のコードは異なる結果を提供します。これらの2つのJavaコードスニペットの違いは何ですか?

私は彼らが何をしているのか分かりませんか?

最初:

public Mat3 getNormalMatrix() { 
    return new Mat3(this.getInverseMatrix()).transpose(); 
} 

秒:

public Mat3 getNormalMatrix() { 
    Mat4 mat = this.getInverseMatrix(); 
    Mat3 bla = new Mat3(mat); 
    bla.transpose(); 
    return bla; 
} 
+0

何ですかgetInverseMatrixの宣言された戻り値の型()したいですか? –

+1

異なる結果は何ですか? – jzd

答えて

10

最初のものは、転置の結果を()は、第2の一方はBLAを返し。 2番目の例では

、あなたは

bla = bla.transpose(); 
+2

これについて少し詳しく説明します。要点は、転置が呼び出されたインスタンスを変更するのではなく、転置がMat3の別のインスタンスを返すことです。私は推測していますが、Mat3クラスは不変である可能性があります。 – rfeak

+0

lolありがとう、私はとても愚かなxDです。私はこのページを印刷して私のトイレでそれを外に出すと思うので、私はすべての時間を思い起こさせます:D –

+0

letzはこの男に答えバッジを2つアップします!!! –

関連する問題