Java 比较返回类型Boolean和Integer的值
我有一个场景,从UI接收的对象传递一个布尔值,该值作为一个整数存储在数据库中,比如TRUE=1和FALSE=0。现在,当将ex的标志更改为FALSE时,我需要比较它的整数值,如果是0,则什么也不做,如果是1,则更改为0并更新。下面是一种方法,但可能还有更好的方法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
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,为什么还要使用三元运算符呢?