Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 比较返回类型Boolean和Integer的值_Java_Integer_Boolean - Fatal编程技术网

Java 比较返回类型Boolean和Integer的值

Java 比较返回类型Boolean和Integer的值,java,integer,boolean,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

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

有一种较短的写入方法:

而不是:

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

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

您的
storedValues
方法可以简化为:

return AClient.x.equals(BServer.y.equals(1));
如果
x
y
不需要为空,我会用原语代替包装类,然后
storedValues
可以如下所示:

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

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

Ummm,为什么还要使用三元运算符呢?