好吧,今天在工作中,我和我同事的代碼經過了同行評審,并被告知要替換它。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。
也就是說,如果可能的話,我寧愿isOpen從Boolean改為,并保持這個狀態。boolean!isOpen
添加回答
舉報
0/150
提交
取消
