是否有正当理由在java中将false布尔值编码为“Boolean.FALSE”?

时间:2011-07-19 13:23:53

标签: java

因此代码审核人员抱怨这样的代码:

boolean myFlag = false;

他们说应该是:

boolean myFlag = Boolean.FALSE;

这只是一些没有使用关键字的迷信或是否有正当理由这样做?

4 个答案:

答案 0 :(得分:57)

不,这完全没有意义。使用:

是有意义的
// Note capital B
Boolean myFlag = Boolean.FALSE;

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

一如既往,如果有人提出建议并且您不明白为什么,那么您的第一个停靠点应该是询问他们

答案 1 :(得分:10)

使用关键字false没有错。事实上,在你的代码中你使用Boolean.False是愚蠢的,因为有一个隐式的自动拆箱必须将它分配给你的原始字段/变量(Boolean.False是一个布尔值,而不是一个布尔值)。 / p>

答案 2 :(得分:5)

投诉没有多大意义,因为无论如何Boolean.FALSE已取消装箱到false。但也许要求人们告诉你改变代码的原因?

答案 3 :(得分:0)

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

在像 Eclipse 这样的IDE中,您可以右键单击FALSE(在Boolean.FALSE中)并选择打开调用层次结构参考文献> (可选)。你不能用文字false做到这一点。但我不知道在你的开发周期中找到Boolean.FALSE的所有引用是多么有用。

奇怪的是,当我搜索FALSE的引用时,发现它遍布Java核心(JDK / JRE)源代码!无论我们是否想要使用它,有一件事是肯定的,那些编写和维护Java的人正在大量使用它。

根据其他答案,这是不必要的,你可以只使用文字false,特别是如果性能很重要 - 避免拆箱开销。代码审查必须优先考虑优化的可读/充分评论的代码而非优化的可读代码。