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'

  • Android TabHost.addTab - >空指针exception
  • NullPointerException在android.widget.AbsListView.contentFits(AbsListView.java:722)
  • ViewPager随着时间的推移碎片被破坏?
  • android ActivityOptions.isReturning()NullPointerException
  • getActivity()上的NullPointerException.runOnUiThread(new Runnable(){
  • runOnUiThread(new Runnable(){
  • PreferenceFragment.findPreference始终返回NULL
  • 尝试使用getChildAt()取消选择视图
  • 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,更多关于检查和抑制它们在这里 。