这篇文章的来源于在项目中的空指针问题,利用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
这篇文章也写的不错,我们可以看看