次のコード例で、コンストラクター ( )var1
を変更せずにインスタンス フィールドを変更するにはどうすればよいですか? - を使用してコピーを作成する必要がありますか?initialVal1
var2
Arrays.copyOf
public class Test
{
private int[] var1;
private int[] var2;
public Test(int[] initialVal1)
{
var1 = initialVal1;
var2 = initialVal1;
}
private void int mutateVar1()
{
this.var1[0] = 100; // change the value at index 0 to 100 in var1 array, this also changes initialVal[0], right?
}
private int getSumOfInitial()
{
int sum = 0;
for (int i = 0; i < var2.length; i++) // but at this point, the initialVal[0] has also been mutated to 100.
{
sum += var2[i]
}
return sum;
}
}