簡體   English   中英

在Android Studio中警告NullPointerException

[英]Warning NullPointerException in Android Studio

當我做:

SharedPreferences logData = PreferenceManager.getDefaultSharedPreferences(this);

if(logData.getString("myString", null).equals("some_value")) {

    // do some stuff…

} else {

    // do some other…
}

Android Studio警告我:

方法調用'logData.getString(“ myString”,null).equals(“ some_value”)'可能會產生'java.lang.NullPointerException'

如何避免此警告? 謝謝。

方法getString()將拋出NUllPointerExcception因為您要通過傳遞第二個參數來返回默認的值。

有兩種方法可以避免這種情況,

首先,通過將空字符串作為默認值作為getString()第二個參數傳遞

SharedPreferences logData = PreferenceManager.getDefaultSharedPreferences(this);

if(logData.getString("myString", "").equals("some_value")) 

或第二,

首先將您的String放入參考變量中,然后檢查其是否為null或不喜歡,

String logDataString = logData.getString("myString", null);
if(logDataString  != null && logDataString.equals("some_value"))

您不能在空對象上調用equals方法。 嘗試首先獲取String並檢查其是否為null。

String myString = PreferenceManager.getDefaultSharedPreferences(
    getBaseContext()).getString("myString", null);

if (myString != null) {
    if (myString.equals("something")) {

    }
    else {

    }
}

或更改getString方法返回的默認值

if (!PreferenceManager.getDefaultSharedPreferences(
    getBaseContext()).getString("myString", "").equals("")) {

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM