Java 是否有正当理由将假布尔值编码为;布尔值.FALSE";在爪哇?

Java 是否有正当理由将假布尔值编码为;布尔值.FALSE";在爪哇?,java,Java,因此,代码审阅者抱怨代码如下: boolean myFlag = false; 他们说应该是: boolean myFlag = Boolean.FALSE; 这只是对不使用关键词的一种崇拜,还是有一个合理的理由这样做?不,这完全没有意义。有必要使用: // Note capital B Boolean myFlag = Boolean.FALSE; 为了避免调用Boolean.valueOf(自动装箱),但在代码中没有装箱,他们的建议引入了不必要的取消装箱操作 尽管如此,如果有人提出了一

因此,代码审阅者抱怨代码如下:

boolean myFlag = false;
他们说应该是:

boolean myFlag = Boolean.FALSE;

这只是对不使用关键词的一种崇拜,还是有一个合理的理由这样做?

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

// Note capital B
Boolean myFlag = Boolean.FALSE;
为了避免调用
Boolean.valueOf
(自动装箱),但在代码中没有装箱,他们的建议引入了不必要的取消装箱操作


尽管如此,如果有人提出了一些建议,而你不明白为什么,你的第一个呼叫端口应该是询问他们。

作为投诉没有多大意义,因为
Boolean.FALSE
无论如何都是不绑定到
FALSE
的。但是,也许可以问告诉您更改代码的人为什么?

使用关键字false没有什么错。事实上,在您的代码中使用Boolean.False是愚蠢的,因为要将它分配给您的基本字段/变量(Boolean.False是Boolean而不是Boolean),必须进行隐式自动取消装箱操作。

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

在像Eclipse这样的IDE中,您可以右键单击
FALSE
(在
Boolean.FALSE
)并选择opencallhierarchy或References>(选项)。您不能使用literal
false
来实现这一点。但是我不知道在您的开发周期中查找
Boolean.FALSE的所有引用有多有用

奇怪的是,当我搜索
FALSE
的引用时,发现它散落在Java核心(JDK/JRE)源代码中!不管我们是否想使用它,有一点是肯定的,编写和维护Java的人都在大量使用它


根据其他答案,这在其他方面是不必要的,您可以直接使用literal
false
,尤其是在性能很重要的情况下,避免了拆箱开销。代码审查必须将优化的可读代码/充分注释的代码优先于未优化的可读代码。

告诉代码审查者去阅读自动装箱。我认为这是一种迷信。但是,如果使用的编码标准指定您应该使用Boolean.FALSE,那么无论您喜欢与否,以及是否正常,您都应该使用它。“如果使用的编码标准指定您应该使用[…],那么您应该使用它……无论它是否正常”。我不同意。如果您觉得标准有点奇怪,您应该尝试就其进行对话,并询问评审人员,以便能够了解制定标准的原因,并可能对其进行讨论。作为被审查者,你可能会学到一些新东西,或者你可能会纠正别人的误解。但是盲目的跟随并不能做到这两件事。然而,如果他们坚持遵循一个在讨论后毫无意义的标准,那么这是另一个主题。有一个(有效的?)原因:增加可读性(如果你不戴眼镜)[:-)@Sweko,但是,如果使用的编码标准指定您应该使用Boolean.FALSE,那么您应该使用它,无论您喜欢与否…,我宁愿多次退出,也不愿做一些固有的延迟。此外,如果您有Boolean myFlag=FALSE;,您应该只使用Boolean myFlag;@Danail:如果它是局部变量,则不应该使用。是的,这这也是我的想法。我不知道编译器是否会自动取消它的装箱以便转换它,但我认为这没有真正的意义。而且代码标准文档对此没有任何说明,所以我将反驳他们,这是毫无意义的。