如何比较当前的布尔值和先前的值?

时间:2018-08-25 22:03:04

标签: java android boolean compare

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

Sub Macro1()
'
' Macro1 Macro
'

    Columns("A:A").ColumnWidth = 20.14
End Sub

我怎么去呢?

3 个答案:

答案 0 :(得分:1)

您需要创建另一个变量,该变量将在分配新值之前存储原始值。

如果出于某种原因要重用它,则可以创建一个名为“ BooleanWithPrevious”的类,在该类内部,您还将拥有两个布尔值,即实际值和前一个布尔值。使用setter可以更新两个值,然后使用getter获取先前和当前的值。

TL; DR

您需要一个辅助变量来实现所需的功能。基元只有一个实际值,什么都不记得。

答案 1 :(得分:0)

您将需要创建自己的数据结构。例如:

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

答案 2 :(得分:0)

例如:

public class BooleanEx {

    private boolean value;

    public BooleanEx() { }

    public BooleanEx(boolean value) {
        this.value = value;
    }

    public final boolean setAndCompare(boolean newValue) {
        return value == (value = newValue);
    }

    public final boolean get() {
        return value;
    }
}

...

final BooleanEx myBoolean = new BooleanEx();
if (myBoolean.setAndCompare(false)) {

}