是否有正当理由将错误的布尔值编码为 java 中的"Boolean.FALSE"?



所以代码审查者抱怨这样的代码:

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 HierarchyReferences> (option)。对于文字false,您不能这样做。但是我不知道找到Boolean.FALSE的所有参考文献在你的开发周期中有多大用处。

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

根据其他答案,它在其他方面是不必要的,您可以只使用文字false,特别是在性能很重要的情况下-避免拆箱开销。代码审查必须优先考虑优化的可读/充分注释的代码,而不是未优化的可读代码。

最新更新