gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 06:20:00 25 4
gpt4 key购买 nike

首先,对这个非常基本的问题表示歉意。我对 stackoverflow 还很陌生,但我对此感到摸不着头脑,希望得到一些启发。

好吧,今天在工作中,我和我同事的代码经过了同行评审,并被告知要替换它..

Boolean isOpen;
*some processing that involves altering the value of isOpen*
if (!isOpen){
...
}

有了这个..

if (Objects.equals(Boolean.FALSE, isOpen)){
...
}

我知道这两种实现都是正确的并且产生相同的结果。我也知道使用 Boolean 对象包装器的后果。

我不明白在这种情况下使用 NOT 运算符和 Objects.equals() 之间的区别。我知道在运行时 isOpen 将被取消装箱。两者仍然容易受到 NullPointerException 的影响,那么有什么区别呢?它有点超越了逻辑运算符的目的。

最佳答案

没有 static equals Object中的方法类。

您的意思可能是Objects.equals() 。使用的优势Objects.equals(Boolean.FALSE, isOpen)而不是!isOpen是要避免NullPointerExceptionisOpennull .

也就是说,我宁愿改变 isOpen来自Booleanboolean如果可能,请保留!isOpen情况。

关于java - Object.equals(Boolean, Boolean) 与逻辑运算符 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58023747/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com