[英]Warning NullPointerException in Android Studio
When i do: 当我做:
SharedPreferences logData = PreferenceManager.getDefaultSharedPreferences(this);
if(logData.getString("myString", null).equals("some_value")) {
// do some stuff…
} else {
// do some other…
}
Android Studio warnings me that: Android Studio警告我:
Method invocation 'logData.getString("myString", null).equals("some_value")' may produce ' java.lang.NullPointerException'
方法调用'logData.getString(“ myString”,null).equals(“ some_value”)'可能会产生'java.lang.NullPointerException'
How can I avoid this warning? 如何避免此警告? Thanks.
谢谢。
The method getString()
will throw NUllPointerExcception
because you are returning default null value by passing second parameters. 方法
getString()
将抛出NUllPointerExcception
因为您要通过传递第二个参数来返回默认的空值。
There are two ways to avoid this, 有两种方法可以避免这种情况,
First, by passing empty string as default value as second argument in getString()
首先,通过将空字符串作为默认值作为
getString()
第二个参数传递
SharedPreferences logData = PreferenceManager.getDefaultSharedPreferences(this);
if(logData.getString("myString", "").equals("some_value"))
or Second, 或第二,
First get your String in reference variable than check it for null or not like, 首先将您的String放入参考变量中,然后检查其是否为null或不喜欢,
String logDataString = logData.getString("myString", null);
if(logDataString != null && logDataString.equals("some_value"))
You can't call equals method on a null object. 您不能在空对象上调用equals方法。 Try to get the String first and check if it is null.
尝试首先获取String并检查其是否为null。
String myString = PreferenceManager.getDefaultSharedPreferences(
getBaseContext()).getString("myString", null);
if (myString != null) {
if (myString.equals("something")) {
}
else {
}
}
Or changing the default value returned by getString method 或更改getString方法返回的默认值
if (!PreferenceManager.getDefaultSharedPreferences(
getBaseContext()).getString("myString", "").equals("")) {
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.