zoukankan      html  css  js  c++  java
  • 利用StringUtils可以避免空指针问题

    这篇文章的来源于在项目中的空指针问题,利用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

    这篇文章也写的不错,我们可以看看

  • 相关阅读:
    codechef Taxi Driver
    BZOJ2190 SDOI2008 仪仗队
    BZOJ 1070: [SCOI2007]修车
    BZOJ 1066 [SCOI2007]蜥蜴
    最大流模板
    表达式计算
    codechef Polo the Penguin and the Tree
    LCA 求 树中两个点的距离
    Baby Step Giant Step model
    POJ 1330 Nearest Common Ancestors (LCA,dfs+ST在线算法)
  • 原文地址:https://www.cnblogs.com/fengli9998/p/7808710.html
Copyright © 2011-2022 走看看