比较返回类型Boolean和Integer的值

时间:2014-11-23 06:34:47

标签: java integer boolean

我有一个场景,从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;
            }
        }
    }
}

输出:false

2 个答案:

答案 0 :(得分:0)

编写它的方法较短:

而不是:

if (BServer.y.equals(new Integer(1))) {
    return true;
} else {
    return false;
}

写道:

return (BServer.y == 1) ? true : false;

答案 1 :(得分:0)

您的storedValues方法可以简化为:

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

如果xy不需要为null,我会用原语而不是包装类替换它们,然后storedValues可能如下所示:< / p>

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

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