![](/img/trans.png)
[英]Proper way to handle Android Studio's NullPointerException lint warning
[英]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.