对于Java程序员,我有以下问题。
设置(obj != null)
而不是!(obj == null)
?
答案 0 :(得分:3)
在运行时,如果操作数值都是
==
或两者都指向同一个对象或数组,则true
的结果为null
;否则,结果为false
。
!=
的结果是false
,如果操作数值都是null
或两者都指向同一个对象或数组;否则,结果为true
。
和JLS Sec 15.15.6,它描述了逻辑补码运算符(!
):
在运行时,如果需要,操作数可以进行拆箱转换(第5.1.8节)。如果(可能转换的)操作数值为
true
,则一元逻辑补码表达式的值为false
,如果(可能转换的)操作数值为false
,则为true
。
从评价的角度来看,两者完全相同;但是!=
更容易阅读。
答案 1 :(得分:0)
不,没有任何区别
'不等于'(!=
)是山姆,因为不是'等于'。
答案 2 :(得分:0)
这里没有区别,!(obj == null)只是写作(反向)的另一种方式,它也比第一种方式难以理解。
答案 3 :(得分:0)
没有任何区别。 {{1}}对大多数人来说更容易理解。
答案 4 :(得分:0)
否差异。
此外,有些人希望在进行有条件检查时让null
彼此靠近。
if(obj1 == null || null == obj2) // looks better to read
...
if(obj1 == null && obj.method()) // have high chances to throw an exception
even if True && this will be checked
if(obj1 == null || obj.method()) // is preferred over the above one
if True || this will be NOT be checked