当前位置:  开发笔记 > 编程语言 > 正文

正确的方法来处理Android Studio的NullPointerException lint警告

如何解决《正确的方法来处理AndroidStudio的NullPointerExceptionlint警告》经验,为你挑选了3个好方法。

我是android/java编程的新手,我很困惑如何正确处理这个警告.

方法调用''可能产生'Java.lang.NullPointerException'

在此输入图像描述

我应该断言要删除警告吗? 在此输入图像描述

或者说是运行时异常? 在此输入图像描述

任何帮助,将不胜感激.



1> matiash..:

我怀疑这个问题可以得到最终的回答,因为这是一个意见问题.或者至少我相信 - 也是一种观点.:)

我知道你想要"0警告"(一个非常值得称赞的目标),但可能没有"一刀切"的问题.那说......

事情,我相信你应该不会做的事:

使用断言.虽然您可以添加断言语句,但Dalvik会忽略它们.您可以根据需要配置仿真器以使用它们,但不能使用真实设备(请参阅我可以在Android设备上使用断言吗?).因此虽然它可能会删除警告,但在实践中它是无用的.

抛出方法NullPointerException.一般来说,这是一个坏主意.在这种情况下,既然你可能会覆盖 onOptionsItemSelected(),那甚至都不可能.

检查(variable != null)通常是最好的方法.但是,如果有的话,该怎么做才会提出其他一些选择.

如果这是一个问题,你可以恢复,即你可以继续申请,即使searchView不存在,只需这样做.例如,只需从方法返回.记录这种情况是个好主意,所以你可以在测试时发现它.

否则,如果无法继续,则抛出异常.您希望尽早失败,以便轻松检测到问题.这种情况的一个合理的例外是IllegalStateException(参见Java等效于.NET System.InvalidOperationException).它基本上表明此方法是在不适当的时间执行的.但要小心,因为RuntimeException这些异常是未经检查的,因此可能会导致应用程序崩溃.



2> Herrbert74..:

我开始使用了

@SuppressWarnings("ConstantConditions")

在简单的方法,我确定id不是null.


完美,这就是我们想要的.仅对我们确定id不能为null的方法禁用检查.

3> MatPag..:

@ Herrbert74的建议确实可以正常工作,但是有时最好不要@SuppressWarnings("ConstantConditions")在整个方法中添加a (如果它不是很简单的话),最好的方法是//noinspection ConstantConditions在警告行上使用。

这些是我的经验法则:

@SuppressWarnings("ConstantConditions")方法简单时使用

使用//noinspection ConstantConditions时,该方法是复杂的,你需要删除只在特定的行警告

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有