String類型的字符串的非空判斷還是經常會用到滴,但是前幾天用的過程中發現了一個問題:假如有一個字符差爲str
if(str == null || str.equals("")) 或者 if("".equals(str) || str == null)
這樣判斷是沒有問題滴,但是我卻這樣寫了:
if(skipMark.equals("") || skipMark == null)
然後非空判斷就出問題了,後來聽同事簡單說了一下原因,可惜不是太理解 - -! 不過還是先記錄下,以後不能再犯這樣的錯咯。至於具體原因嘛,等哪天我自己弄明白了再補上,如果有人看到正好對此理解透徹的話,還請不吝賜教 ~~~
//2016-07-22
補充下:if(skipMark.equals("") || skipMark == null)這種情況,如果你先判斷equals ,那麼如果前面的那個變量爲null, 就會空指針。上面的兩種剛好避免了空指針的情況,所以最好用另外兩種寫法,多謝網友指導