我知道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'
答案 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。