我有一个场景,一个从UI接收的对象传递一个布尔值,并将其作为整数存储在数据库中,例如TRUE = 1和FALSE = 0。现在,当标志从ex更改为FALSE时,我需要比较它的整数值(如果它的0),那么如果1然后更改为0并进行更新,则不执行任何操作。一种方法在下面,但是也许还有更好的方法可以做到这一点。

class AClient {
    static Boolean x;
}
class BServer {
    static Integer y;
}
public class Demo {
    public static void main(String[] args) {
        AClient.x = Boolean.TRUE;
        BServer.y = 0;
        System.out.println(storedValues());
    }
    private static Boolean storedValues() {
        if (AClient.x) {
            if (BServer.y.equals(new Integer(1))) {
                return true;
            } else {
                return false;
            }
        } else {
            if (BServer.y.equals(new Integer(1))) {
                return false;
            } else {
                return true;
            }
        }
    }
}


输出:假

最佳答案

您的storedValues方法可以简化为:

return AClient.x.equals(BServer.y.equals(1));


如果xy永远不需要为null,我将用原语而不是wrapper类替换它们,那么storedValues可能看起来像这样:

return BServer.y == 1 == AClient.x;


您也可以将storedValues的返回类型更改为boolean

09-27 17:58