为了账号安全,请及时绑定邮箱和手机立即绑定

Object.equals(Boolean, Boolean) 与逻辑运算符 (Java)

Object.equals(Boolean, Boolean) 与逻辑运算符 (Java)

慕娘9325324 2023-08-09 17:13:59
好吧,今天在工作中,我和我同事的代码经过了同行评审,并被告知要替换它。Boolean isOpen;*some processing that involves altering the value of isOpen*if (!isOpen){...}有了这个..if (Objects.equals(Boolean.FALSE, isOpen)){...}我知道这两种实现都是正确的并且产生相同的结果。我也知道使用对象包装器的后果Boolean。我不明白在这种情况下使用 NOT 运算符和 Objects.equals() 之间的区别。我知道在运行时isOpen将会被拆箱。两者都仍然容易受到a的影响NullPointerException,那么有什么区别呢?它有点超越了逻辑运算符的目的。
查看完整描述

1 回答

?
忽然笑

TA贡献1806条经验 获得超5个赞

课堂上没有static equals方法Object

你可能是说Objects.equals()Objects.equals(Boolean.FALSE, isOpen)使用not的好处!isOpen是可以避免NullPointerExceptionwhen isOpenis null

也就是说,如果可能的话,我宁愿isOpenBoolean改为,并保持这个状态。boolean!isOpen


查看完整回答
反对 回复 2023-08-09
  • 1 回答
  • 0 关注
  • 68 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信