boolean temp1,temp2;
temp1 = true;
temp2 = temp1;
Log.d("rvg", "temp1:"+temp1+" temp2:"+temp2);
temp1 = false;
Log.d("rvg", "temp1:"+temp1+" temp2:"+temp2);
當我執行此,我得到分配默認值:JAVA
temp1:true temp2:true
temp1:false temp2:true
但我已經改變了數組
boolean[] Temp1,Temp2;
Temp1 = new boolean[1];
Temp2 = new boolean[1];
Temp1[0] = true;
Temp2 = Temp1;
Log.d("rvg", "Temp1:"+Temp1[0]+" Temp2:"+Temp2[0]);
Temp1[0] = false;
Log.d("rvg", "Temp1:"+Temp1[0]+" Temp2:"+Temp2[0]);
當我執行此,我爲TEMP1得到了相同的值和溫度2.
Temp1:true Temp2:true
Temp1:false Temp2:false
如何避免這種情況?
使用'TEMP2 [0] = TEMP1 [0]; '而不是'Temp2 = Temp1;' – johnchen902
如何通過在循環中迭代而不是直接通過Temp2 [] = Temp1將值從temp1複製到temp2,這會導致通過引用進行復制,因此您隱式地綁定它們,從而導致影響彼此 –