因此代码审核人员抱怨这样的代码:
boolean myFlag = false;
他们说应该是:
boolean myFlag = Boolean.FALSE;
这只是一些没有使用关键字的迷信或是否有正当理由这样做?
答案 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
,特别是如果性能很重要 - 避免拆箱开销。代码审查必须优先考虑优化的可读/充分评论的代码而非优化的可读代码。