我需要将当前的布尔值与以前存在的值进行比较。 类似于以下示例:
private boolean f = false;
f=true;
if(f.preivousValue == f.currentValue){}
我怎样才能到达它?
您需要创建另一个变量,该变量将在签名新值之前存储原始值。
如果出于某种原因想要重用它,则可以创建一个名为"BooleanWithPrevious"的类,在此类中,您还将有两个布尔值,实际值和上一个。使用二传手,您可以更新两个值,然后使用getter获取前一个值和当前值。
TL;博士
您需要一个辅助变量来实现您想要的。基元只有一个实际值,什么都不记得。
您需要创建自己的数据结构。例如:
public class StateAwareBoolean {
private boolean oldState = false;
private boolean currentState;
public StateAwareBoolean(boolean value) {
currentState = value;
}
public void set(boolean newState) {
oldState = currentState;
currentState = newState;
}
public boolean oldState() {
return oldState;
}
public boolean currentState() {
return currentState;
}
}
用法将是这样的:
private StateAwareBoolean f = new StateAwareBoolean(false);
f.set(true);
if(f.oldState() == f.currentState()){}