java – NullPointerException onActivityCreated / onStart / onViewCreated方法上的getView()警告

前端之家收集整理的这篇文章主要介绍了java – NullPointerException onActivityCreated / onStart / onViewCreated方法上的getView()警告前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道getView()可能会在onCreateView()方法中返回null,但即使我将以下代码放在onActivityCreated(),onStart()或onViewCreated()方法中)中,仍然会显示关于 Android Studio中可能的NullPointerException的警告我的程序运行没有任何问题).如何摆脱这个警告?

我使用片段.

码:

datpurchased = (EditText) getView().findViewById(R.id.datepurchased); 
//datpurchased defined as instance variable in the class

警告:

Method invocation ‘getView().findViewById(R.id.datepurchased)’ may
produce ‘java.lang.NullPointerException’

解决方法

Android Studio基于IntelliJ IDEA,这是IntelliJ的一个功能,当您在使用它之前不检查方法返回的对象是否为null时,会在编译时给出警告.

避免这种情况的一种方法是总是检查null或捕获NullPointerException的样式的程序,但是它可以变得非常冗长,特别是对于您知道的事情将始终返回一个对象,而不会为null.

另一个替代方法是使用@SuppressWarnings等注解方法来抑制这种情况下的警告,方法使用您知道的对象永远不能为空:

@SuppressWarnings({"NullableProblems"})
public Object myMethod(Object isNeverNull){
    return isNeverNull.classMethod();
}

或者,在您的情况下,线路级别的抑制:

//noinspection NullableProblems
datpurchased = (EditText) getView().findViewById(R.id.datepurchased); //datpurchased defined as instance variable in the class

确保对象真的永远不能为null.

有关IntelliJ的@NotNull和@Nullable注释的更多信息可以在here中找到,更多关于检查和抑制它们的内容here.

猜你在找的Java相关文章