boolean temp1,temp2;
temp1 = true;
temp2 = temp1;
Log.d("rvg", "temp1:"+temp1+" temp2:"+temp2);
temp1 = false;
Log.d("rvg", "temp1:"+temp1+" temp2:"+temp2);
当我执行这个时,我得到了
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和Temp 2的值相同。
Temp1:true Temp2:true
Temp1:false Temp2:false
如何避免这种情况?
最佳答案
您需要复制阵列。代替
Temp2 = Temp1;
做
Temp2 = Arrays.copyOf(Temp1, Temp1.length);
关于java - 分配默认值:java,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17568443/