2014-11-23 47 views
1

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

输出:假

回答

0

storedValues方法可以简化为:

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

如果xy并不需要永远是空的,我将与原语,而不是包装类替换它们,然后storedValues看起来是这样的:

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

你也可以将storedValues的退货类型更改为boolean

0

有把它写一个较短的方式:

相反的:

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

写:

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

嗯,为什么即使使用三元运算符呢? – ajb 2014-11-23 06:48:23