its*_*ity 2 java boolean object boolean-expression boolean-operations
首先,对这个非常基本的问题表示歉意。我对stackoverflow还是比较陌生,但是对此我挠头了,希望能有所启发。
好的,所以今天在工作中,我和我的同事的代码经过同行审查,并被要求替换。
Boolean isOpen;
*some processing that involves altering the value of isOpen*
if (!isOpen){
...
}
Run Code Online (Sandbox Code Playgroud)
有了这个..
if (Objects.equals(Boolean.FALSE, isOpen)){
...
}
Run Code Online (Sandbox Code Playgroud)
我知道这两种实现都是正确的,并且产生相同的结果。我也知道使用Boolean
对象包装器的后果。
我没有得到的是在这种情况下使用NOT运算符和Objects.equals()之间的区别。我知道在运行时isOpen
它将被拆箱。两者仍然容易受到影响,有NullPointerException
什么区别?这有点超出了逻辑运算符的目的。
课堂上没有static
equals
方法Object
。
你可能是说Objects.equals()
。使用的优点Objects.equals(Boolean.FALSE, isOpen)
,而不是!isOpen
是为了避免NullPointerException
当isOpen
为null
。
也就是说,如果可能的话,我宁愿isOpen
从更改Boolean
为boolean
,并保持!isOpen
条件不变。
归档时间: |
|
查看次数: |
56 次 |
最近记录: |