TextUtils.isEmpty(string)
和string.isEmpty
有何区别?Android TextUtils isEmpty vs String.isEmpty
两者都做同样的操作。
使用TextUtils.isEmpty(string)
有利吗?
TextUtils.isEmpty(string)
和string.isEmpty
有何区别?Android TextUtils isEmpty vs String.isEmpty
两者都做同样的操作。
使用TextUtils.isEmpty(string)
有利吗?
是的,TextUtils.isEmpty(string)
是优选的。
为string.isEmpty()
,一个空字符串值都将抛出一个NullPointerException
TextUtils
总是会返回一个布尔值。
在代码中,前者只是calls the equivalent of the other,再加上一个空检查。
return string == null || string.length() == 0;
@RuchirBaronia表示'TextUtils。isEmpty(string)'也检查'String'对象是否为'null',所以如果你尝试使用'String'你没有得到'NullPointerException' –
@ahmedghanayem不,我问为什么板球写了String#是空的而不是String.isEmpty,但是那个链接清除了我。 –
我意识到我可以简单地使用变量而不是类来避免进一步的混淆 –
在类,如果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
如果您尝试使用该字符串并且它为空。
看看商务部
为String#isEmpty他们指定:
布尔
的isEmpty() 只返回如果是真的,并且,长度()为0
和TextUtils.isEmpty的文件说明:
public static boolean isEmpty(CharSequence str)
如果字符串为null或0长度,则返回true。
所以主要的不同之处在于使用TextUtils.isEmpty,你不关心或者不需要检查,如果字符串为null引用与否,
在另一种情况是。
我认为'TextUtils.isEmpty'上的点符号更有意义,因为它是一种静态方法 –
你知道你总是可以看看两种方法的实现,只需几秒钟就可以自己找出差异...... –
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 –