项目中服务器返回的字符串有可能为NULL或者没有内容,习惯性直接用String.isEmpty()

运行中发现字符串为NULL的时候就会出错,之前有查百度看到过正确的用法,但一直没在意,

就直接加多一个判断字符串是否为NULL,项目改的地方比较多,后来发现有些地方忘记加了判断

成为了隐形的Bug,最后还是看了下源码,发现了问题

String string = null;
string.isEmpty();  //这一行就会出现空指针错误

//看下源码

public boolean isEmpty() {
        return count == 0;
    }

//并没有判断是否为Null,所以出错

正确的应该是用TextUtils.isEmpty()

/**
     * Returns true if the string is null or 0-length.
     * @param str the string to be examined
     * @return true if str is null or zero length
     */
    public static boolean isEmpty(@Nullable CharSequence str) {
        if (str == null || str.length() == 0)
            return true;
        else
            return false;
    }

看源码主要是判断字符串长度,所以空格是返回false的

posted on 2017-12-15 01:02  Samdogcom  阅读(1001)  评论(0)    收藏  举报