2017-04-25 57 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 
相關問題