這篇文章的來源於在項目中的空指針問題,利用StringUtils可以避免這個空指針問題。
有時候代碼中是會出現如下情況if("".equals(str) && str == null) {}, 反正我以前判斷字符串為空的時候經常這么干,但實際上這么寫代碼很啰嗦,
commons-lang-2.5.jar包中供了一個很方便的工具類StringUtils,而且還有效的避免空指針問題。
如果我們在進行編碼的時候,聲明了一個變量:
例如 String message=null;
然后在下面進行if(message.equeals("某")),如果message沒有初始化,則會報空指針的錯誤,提示message不能為空。
但是我們在用stringutils時可以避免這個問題:
且看這個例子:
從上面我們可以看到,如果為空的時候也可以進行比較。會得出false的結果,所以我們用它可以避免空指針的問題。
延伸一下看下equals和Stringutils這個工具類的使用吧:
關於equals這個有一些坑,我們來看看:
equals變量在前面或者在后面有什么區別嗎?這是一個坑點
看代碼吧:
a.equals("true");和"null".equals(a);有什么區別的?
答案:前者會拋空指針異常,后者不會;
剖析:如果a=null,String對象就會是一個空對象,空對象說明沒有equals方法,所以就會報空指針異常;
又如,后者a=null,"null".equals(a);結果永遠都為false,原因直接看源碼:
為了避免這個坑點,還是使用另外一種方式吧!
使用org.apache.commons.lang包下的StringUtils.equals(String str1, String str2)方法
關於Stringutils的使用我們參考這個博客吧,內容太多了,我們借鑒下吧!
http://blog.csdn.net/Mint6/article/details/77965110
這篇文章也寫的不錯,我們可以看看