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 警告我:
Method invocation 'logData.getString("myString", null).equals("some_value")' may produce '
java.lang.NullPointerException'
我怎样才能避免这个警告?谢谢
不能对空对象调用 equals 方法。尝试先获取字符串并检查它是否为空。
String myString = PreferenceManager.getDefaultSharedPreferences(
getBaseContext()).getString("myString", null);
if (myString != null) {
if (myString.equals("something")) {
}
else {
}
}
或者改变getString方法返回的默认值
if (!PreferenceManager.getDefaultSharedPreferences(
getBaseContext()).getString("myString", "").equals("")) {
}
方法 getString()
将抛出 NUllPointerExcception
因为您通过传递第二个参数返回默认 null 值。
有两种方法可以避免这种情况,
首先,将空字符串作为默认值传递给 getString()
中的第二个参数
SharedPreferences logData = PreferenceManager.getDefaultSharedPreferences(this);
if(logData.getString("myString", "").equals("some_value"))
或第二,
首先在引用变量中获取您的字符串,然后检查它是否为空,
String logDataString = logData.getString("myString", null);
if(logDataString != null && logDataString.equals("some_value"))
当我这样做时:
SharedPreferences logData = PreferenceManager.getDefaultSharedPreferences(this);
if(logData.getString("myString", null).equals("some_value")) {
// do some stuff…
} else {
// do some other…
}
Android Studio 警告我:
Method invocation 'logData.getString("myString", null).equals("some_value")' may produce ' java.lang.NullPointerException'
我怎样才能避免这个警告?谢谢
不能对空对象调用 equals 方法。尝试先获取字符串并检查它是否为空。
String myString = PreferenceManager.getDefaultSharedPreferences(
getBaseContext()).getString("myString", null);
if (myString != null) {
if (myString.equals("something")) {
}
else {
}
}
或者改变getString方法返回的默认值
if (!PreferenceManager.getDefaultSharedPreferences(
getBaseContext()).getString("myString", "").equals("")) {
}
方法 getString()
将抛出 NUllPointerExcception
因为您通过传递第二个参数返回默认 null 值。
有两种方法可以避免这种情况,
首先,将空字符串作为默认值传递给 getString()
SharedPreferences logData = PreferenceManager.getDefaultSharedPreferences(this);
if(logData.getString("myString", "").equals("some_value"))
或第二,
首先在引用变量中获取您的字符串,然后检查它是否为空,
String logDataString = logData.getString("myString", null);
if(logDataString != null && logDataString.equals("some_value"))