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 

警告:

方法调用“getView()。findViewById(R.id.datepurchased)'可能产生'java.lang.NullPointerException'

Solutions Collecting From Web of "NullPointerException在onActivityCreated / onStart / onViewCreated方法内的getView()"

Android Studio基于IntelliJ IDEA,这是IntelliJ的一个function,当您在使用它之前没有检查方法返回的对象是否为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 

但是,确保这些对象真的不能为空。

有关IntelliJ的@NotNull和@Nullable注释的更多信息可以在这里find,更多关于检查和抑制它们在这里 。