NullPointerException onActivityCreated / onStart / onViewCreated方法中的getView()警告

时间:2015-05-08 00:10:56

标签: java android android-studio nullpointerexception 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'

1 个答案:

答案 0 :(得分:13)

Android Studio基于IntelliJ IDEA,这是IntelliJ的一项功能,当您在使用它之前未检查方法返回的对象是null时,它会在编译时为您提供警告。

避免这种情况的一种方法是始终检查null或捕获NullPointerException的样式中的程序,但它可能会变得非常冗长,特别是对于您知道将始终返回对象且永远不会{的事物。 {1}}。

另一个替代方法是使用注释(如null)来抑制对此类情况的警告,以便使用您知道永远不会为null的对象的方法:

@SuppressWarnings

或者,在您的情况下,是行级抑制:

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

但请确保对象确实永远不会为空。

可以找到有关IntelliJ的@NotNull和@Nullable注释的更多信息here,以及有关检查和压制它们的更多信息here