比较返回类型布尔和整数的值
问题描述:
我有一个从UI接收的对象传递一个布尔值,并将其作为整数存储在数据库中,如TRUE = 1和FALSE = 0的场景。现在,当标志被改变为ex为FALSE时,我需要比较它的整数值,如果它为0,那么如果1变为0,则更新为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));
如果x
和y
并不需要永远是空的,我将与原语,而不是包装类替换它们,然后storedValues
看起来是这样的:
return BServer.y == 1 == AClient.x;
你也可以将storedValues
的退货类型更改为boolean
。
答
有把它写一个较短的方式:
相反的:
if (BServer.y.equals(new Integer(1))) {
return true;
} else {
return false;
}
写:
return (BServer.y == 1) ? true : false;
嗯,为什么即使使用三元运算符呢? – ajb 2014-11-23 06:48:23