大家好,第一次寫博客,一直想寫博客,用於自我總結,也用於幫助新同學成長。
平常我們開發的時候,用到很多非空判斷,但是很多同學用到的地方不是很准確,這里,我把自己平時遇到的坑跟大家說說。我廢話不多,只想寫干貨,希望大家喜歡。
情景一:字符串的非空判斷“”
對於字符串的判斷,比如字符串str,其實我們很多同學直接 str != null 去判斷,這樣是極其不准確的,因為str ==" "的時候,我們其實也想攔住,但的確 " "!= null,我們這行判斷就沒有限制住空字符串的情況。官方給到的是org.apache.commons.lang.StringUtils工具類,這個里面其實原理也是做了一層str != null,但是同時也判斷了該字符串的長度,所以即使str ==" "的時候,用了工具類去判斷,也會被校驗住。
記住一句話,無論任何時候,對於字符串的判斷,用org.apache.commons.lang.StringUtils工具類去判斷就可以:非空判斷用StringUtils.isNotEmpty(str)或者StringUtils.isNotBlank(str);如果是判斷字符串為空,用StringUtils.isEmpty(str)或者StringUtils.isBlank(str);這樣能保證你判斷這一步不會出錯。
情景二:數字的非空判斷
我們對於數字判斷,不管是什么類型,一般只有封裝類型才可以去跟null比較,但是注意,盡量用equal去比較。等你體會到我為什么說用equal,你就知道我為什么這么說了。
情景三:集合的非空判斷
對於集合的非空判斷,我們很多情景是查詢出一個list,然后需要用到這個list,但是必須要進行非空判斷,這個時候,很多人還是用list !=null 去比較,其實會出問題的,比如如果你去這樣先定義一個集合List<String> list=new ArrayList<>(),這個list 並不是為null,所以你自己去判斷的時候如果還是用list !=null,顯然是攔不住,這個判斷沒起作用。
對於集合的非空判斷,我們直接用CollectionUtils.isNotEmpty(list)或者CollectionUtils.isNotBlank(list)去判斷不會出錯,因為里面會對元素數量進行判斷。
情景三:map的非空判斷
同理,map的非空判斷,我們需要用map != null && map.size()>0去判斷,這個同理,我們創建一個map對象的時候,這個map不是null,但是里面如果沒有元素,我們對數量進行了判斷,才真正意義上做到了對map的非空校驗。