2017-04-25 212 views

回答

0

不,没有任何区别。
'不等于'(!=)是山姆不是'等于'。

0

这里没有什么不同,!(obj == null)只是写入(反向)的另一种方式,而且它比第一个难以理解。

0

没有任何区别。大多数人更容易阅读(obj != null)

3

JLS Sec 15.21.3引用:

在运行时,的==结果是true,如果操作数的值都为null或两者指代相同的对象或阵列;否则,结果是false。如果操作数值都是null或者两者都引用同一对象或数组;否则,结果是true

而且JLS Sec 15.15.6,其描述了逻辑补运算符(!):

在运行时,操作数是受取消装箱转换(§5.1.8)如果需要的话。如果(可能转换后的)操作数值为false,并且false(如果可能转换的)操作数值为true,则一元逻辑补码表达式的值为true

所以从评估的角度来看,两者是完全一样的;但!=更容易阅读。

0

NO区别。
此外,有些人更喜欢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 
相关问题