所以代码审查者抱怨这样的代码:
boolean myFlag = false;
他们说它应该是:
boolean myFlag = Boolean.FALSE;
这只是一些没有使用关键字的恋物癖还是有一个有效的理由这样做?
不,这完全没有意义。使用:
是有意义的// Note capital B
Boolean myFlag = Boolean.FALSE;
避免调用Boolean.valueOf
(自动装箱),但是在你的代码中是没有装箱,他们的建议引入了一个不必要的拆箱操作。
一如既往,如果有人给你建议,而你不明白为什么,你的第一站应该是问他们。
使用关键字false没有错。实际上,在代码中使用布尔值是愚蠢的。False,因为必须进行隐式自动拆箱才能将其分配给原始字段/变量(布尔值)。False是布尔值而不是布尔值)
作为抱怨没有多大意义,因为Boolean.FALSE
无论如何都是打开到false
的。但是也许你可以问问那些告诉你要修改代码的人,为什么?
我只能想到一个原因,如果你真的想挖掘一个可能的原因:
在像Eclipse的IDE中,您可以右键单击FALSE
(在Boolean.FALSE
中)并选择Open Call Hierarchy或References> (option)。对于文字false
,您不能这样做。但是我不知道找到Boolean.FALSE
的所有参考文献在你的开发周期中有多大用处。
奇怪的是,当我搜索FALSE
的引用时,发现它在Java核心(JDK/JRE)源代码中到处都是!无论我们是否想要使用它,有一件事是肯定的,编写和维护Java的人正在大量使用它。
根据其他答案,它在其他方面是不必要的,您可以只使用文字false
,特别是在性能很重要的情况下-避免拆箱开销。代码审查必须优先考虑优化的可读/充分注释的代码,而不是未优化的可读代码。