1. 程式人生 > >java 中 null == a 和 a == null 的區別

java 中 null == a 和 a == null 的區別

在一些書籍和部落格裡會看到一種說法,判空時建議 null 放前面。照葫蘆直接在專案中用,結果被組長問:為什麼要這麼寫?我一下子懵了,不知道怎麼回答。最近整理才明白當中原因,理由如下:

我們在程式碼中判空時,if (a == null),有可能手快寫成 if (a = null),這在一些語言是可以進行編譯執行,結果就會出錯,讓你花費時間查詢此處問題。但是寫成 if (null = a) 編譯執行是一定會報錯的。所以反著寫可以預防一些錯誤因素。

這時有些朋友按捺不住,跳出來說:在 java 下 if (a = null) 編譯器就會報錯,因為括號內只能放 boolean 值。別急,這可不一定。別忘了 Boolean 的存在。請往下看:

演示程式碼

上面這段程式碼在編譯器不會報錯。即使是進行編譯執行,也是部分編譯器執行成功,部分編譯器執行失敗。(這裡確實很神奇,我在 android studio 執行成功過,後面又一直執行失敗…)

總結

明白了 null 放前面的原因和特殊情況後,大家也可以根據自己喜好做選擇。在 java 中,一般 null 放後面其實影響也不大,看各自的習慣了 (-0_0-)。