2016-04-03 47 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'上的點符號更有意義,因爲它是一種靜態方法 –