有没有一个合法的理由来编写一个错误的布尔值为“Boolean.FALSE”在Java?

所以代码评论者抱怨这样的代码:

boolean myFlag = false; 

他们说这应该是:

 boolean myFlag = Boolean.FALSE; 

这只是一些没有使用关键字的恋物癖还是有一个正当的理由来做到这一点?

不,这完全没有意义。 这是有道理的使用:

 // Note capital B Boolean myFlag = Boolean.FALSE; 

以避免调用Boolean.valueOf (自动装箱),但在您的代码没有装箱,他们的build议引入了一个不必要的拆箱操作。

尽pipe如此,如果有人build议,而你不明白为什么,你的第一个停靠港应该问他们

使用关键字false没有任何问题。 事实上,在你的代码中你会傻傻地使用Boolean.False,因为有一个隐式的自动拆箱,必须将其分配给你的原始字段/variables(Boolean.False是一个布尔值而不是布尔值)。

自从Boolean.FALSE被解开为false以后,投诉就没有什么意义了。 但是也许要求人们告诉你改变代码为什么?

我只能想到一个原因, 如果你真的想挖掘一个可能的原因

在像Eclipse这样的IDE中,可以右键单击FALSE (在Boolean.FALSE )并selectOpen Call Hierarchy或者References>(option) 。 你不能这样做的文字false 。 但是我不知道如何findBoolean.FALSE所有引用将会在你的开发周期中。

奇怪的是,当我searchFALSE引用时,发现遍布Java核心(JDK / JRE)源代码! 无论我们是否愿意使用它,有一点是肯定的,编码和维护Java的人正在大量使用它。

根据其他答案,否则就没有必要了,你可以只使用文字false ,特别是如果性能很重要 – 避免拆箱的开销。 代码评审必须优先考虑优化的可读/充分评论的代码优于未优化的可读代码。