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

Tri*_*Man 35 java

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

boolean myFlag = false;
Run Code Online (Sandbox Code Playgroud)

他们说它应该是:

boolean myFlag = Boolean.FALSE;
Run Code Online (Sandbox Code Playgroud)

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

Jon*_*eet 57

不,那完全没有意义.使用有意义:

// Note capital B
Boolean myFlag = Boolean.FALSE;
Run Code Online (Sandbox Code Playgroud)

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

但是,如果有人提出建议并且你不明白为什么,那么你的第一个停靠港应该是问他们.

  • @Danail:如果它是局部变量则不是. (9认同)
  • +1"你的第一个停靠港应该问他们" (7认同)

wha*_*ley 10

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


mat*_*t b 5

这是一个投诉没有多大意义,因为无论如何Boolean.FALSE都没有装箱false.但也许会问人们告诉你改变代码的原因?