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/

10-11 01:27