"".equals(xxx)和xxx.equals("")的區別

今天做項目發現如下這個問題

看見別人用 if ("abc".equals(str)),然後自作聰明地認爲 if (str.equals("abc"))是等效的,就這麼寫

運行後發現出現空指針異常,然後用 debug 調試,發現了當 str != null的時候的確是沒有區別的

當 str ==null 的時候,str.equals("abc") 就會出現空指針異常了。

用 null.equals("abc") 直接不通過編譯的,所以這種寫法本身就是不合法的,即使用變量把 null "包裝"起來,能通過編譯,但運行起來還是錯誤的吧!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章