如何将当前布尔值与以前的值进行比较?



我需要将当前的布尔值与以前存在的值进行比较。 类似于以下示例:

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()){}

相关内容

  • 没有找到相关文章

最新更新