2016-04-03 50 views
18

TextUtils.isEmpty(string)string.isEmpty有何区别?Android TextUtils isEmpty vs String.isEmpty

两者都做同样的操作。

使用TextUtils.isEmpty(string)有利吗?

+1

你知道你总是可以看看两种方法的实现,只需几秒钟就可以自己找出差异...... –

+1

TextUtils源代码:http://grepcode.com/file/repository.grepcode.com /java/ext/com.google.android/android/5.1.1_r1/android/text/TextUtils.java#TextUtils.isEmpty%28java.lang.CharSequence%29 –

回答

31

是的,TextUtils.isEmpty(string)是优选的。


string.isEmpty(),一个空字符串值都将抛出一个NullPointerException

TextUtils总是会返回一个布尔值。

在代码中,前者只是calls the equivalent of the other,再加上一个空检查。

return string == null || string.length() == 0; 
+0

@RuchirBaronia表示'TextUtils。isEmpty(string)'也检查'String'对象是否为'null',所以如果你尝试使用'String'你没有得到'NullPointerException' –

+0

@ahmedghanayem不,我问为什么板球写了String#是空的而不是String.isEmpty,但是那个链接清除了我。 –

+0

我意识到我可以简单地使用变量而不是类来避免进一步的混淆 –

3

在类,如果TextUtils

public static boolean isEmpty(@Nullable CharSequence str) { 
    if (str == null || str.length() == 0) 
     return true; 
    else 
     return false; 
} 

检查串长度是零,并且如果字符串是空,以避免抛NullPointerException

String

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

检查字符串长度只有零,这可能导致NullPointerException如果您尝试使用该字符串并且它为空。

4

看看商务部

String#isEmpty他们指定:

布尔
的isEmpty() 只返回如果是真的,并且,长度()为0

TextUtils.isEmpty的文件说明:

public static boolean isEmpty(CharSequence str)

如果字符串为null或0长度,则返回true。

所以主要的不同之处在于使用TextUtils.isEmpty,你不关心或者不需要检查,如果字符串为null引用与否,

在另一种情况是。

+0

我认为'TextUtils.isEmpty'上的点符号更有意义,因为它是一种静态方法 –