比较布尔值

时间:2014-03-24 10:05:59

标签: java gwt comparison boolean conditional-statements

我有一个名为testCheck的复选框。当用户检查此值时,该值变为TRUE。我可以通过以下方式实现TRUE / FALSE的比较

1

if (testCheck.getValue() == Boolean.TRUE) {

   // Respective Code

}

2

if (testCheck.getValue().equals(Boolean.TRUE)) {

   //Respective Code
}

3

if (testCheck.getValue()) {

   //Respective Code
 }

我的问题:

  • 有什么不同吗?
  • 如果是,哪一种是最好的实施方式?

5 个答案:

答案 0 :(得分:4)

这取决于....

如果testCheck.getValue()的返回类型为boolean,则第三个是正常的。

但如果是Boolean(大B),我会这样做:

Boolean.TRUE.equals(testCheck.getValue())

在自动装箱期间避免使用NPE。

答案 1 :(得分:4)

答案:

  • 编译器没有区别:好的优化器会生成相同的代码。但 human beings (开发人员,测试人员,支持者等)的区别在于:它的可读性
  • 3d选项更自然,这就是为什么更容易阅读

所以预期的代码( 最少意外原则 )是

  if (testCheck.getValue()) {
    ...
    //Respective Code
  }

答案 2 :(得分:1)

我更喜欢第三种选择。它很优雅。由于testCheck.getValue()计算为布尔值,因此可以在if条件

中使用它

在java中,使用==运算符,我们正在检查两个引用是否在内存中引用相同的对象。

要检查两个对象是否有意义相等,请使用.equals()方法。

答案 3 :(得分:1)

Is there any difference ?

可读性只有差异。

If yes, Which one is the best way of implementation ?

如果您希望快速阅读和理解您的代码,那么最后一个可能就是这样。

答案 4 :(得分:0)

有什么不同吗?

是的,有。

如果是,哪一种是最好的实施方式?

第3名。