Java中“Boolean.TRUE.equals(x)”有什么理由吗?
2022-09-01 11:37:17
						我在我正在处理的一个项目中遇到了此代码
(这是在Java中)
if (Boolean.TRUE.equals(foo.isBar()))
Foo#isBar() 被定义为 ,因此它不能返回boolean isBar()null
真的有什么理由应该这样写吗?我自己只会写
if (foo.isBar())
,但也许我错过了一些微妙的东西。
谢谢
我在我正在处理的一个项目中遇到了此代码
(这是在Java中)
if (Boolean.TRUE.equals(foo.isBar()))
Foo#isBar() 被定义为 ,因此它不能返回boolean isBar()null
真的有什么理由应该这样写吗?我自己只会写
if (foo.isBar())
,但也许我错过了一些微妙的东西。
谢谢
我希望返回一个布尔值。在这种情况下,您可以随时编写 .如果返回,则它可以是 、 或 。在这种情况下,请确保在一个场景(TRUE)中执行if块,并在其余2中省略。foo.isBar()if (foo.isBar())foo.isBar()BooleanBoolean.TRUEBoolean.FALSENULLif (Boolean.TRUE.equals(foo.isBar()))
当返回布尔 NULL 时,上述操作将失败。if (foo.isBar())foo.isBar()
由于返回一个原语,所以没有语义上的区别。此外,第二种方法更简洁,更清晰,更有效,因为结果不必为调用进行置入,然后再次提取原始布尔值。鉴于所有这些,没有理由使用第一种方法,并且有几个使用第二种方法,因此使用第二种方法。我给其他程序员很大的回旋余地,但我会坐下来和任何在专业代码中添加类似内容的人聊天。isBarboolean