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 –