当前位置: 首页 > 知识库问答 >
问题:

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

施海
2023-03-14

我是android/java编程新手,对如何正确处理这个警告感到困惑。

方法调用“”可能会生成“Java”。lang.NullPointerException'

任何帮助都将不胜感激。

共有3个答案

华乐逸
2023-03-14

@Herrbert74建议它肯定工作正常,但有时最好不要向整个方法添加@SuppressWarnings(“Constant条件”)(如果不是微不足道的话),更好的方法可能是在警告行上使用//no检Constant条件...

以下是我的经验法则:

>

  • 如果方法简单,请使用@SuppressWarnings(“ConstantConditions”)

    当方法复杂且仅需要删除特定行上的警告时,请使用//noinspection ConstantConditions

  • 萧成文
    2023-03-14

    我开始使用

    @SuppressWarnings(“恒定条件”)

    在简单的方法中,我确信id不是null。

    牟稳
    2023-03-14

    我怀疑这个问题能否得到结论性的回答,因为这是一个意见问题。或者至少我认为是这样——这也是一种观点

    我知道你想要“0警告”(一个非常值得称赞的目标),但可能没有“一刀切”的问题。也就是说。。。

    我认为你不应该做的事情:

    • 使用断言。虽然您可以添加断言语句,但Dalvik忽略它们。如果需要,您可以配置模拟器来使用它们,但不是真正的设备(请参阅我可以在Android设备上使用断言吗?)。因此,虽然它可能会删除警告,但在实践中是无用的。
    • 让方法抛出NullPointerExc0019。一般来说,这是个坏主意。在这种情况下,由于您可能会重写onOptionsItemS选(),这甚至是不可能的。

    检查变量!=null)通常是最好的方法。但是,如果是这样,该怎么办还有其他一些选择。

    • 如果这是一个您可以从中恢复的问题,即即使searchView不存在,您也可以继续应用程序,只需这样做即可。例如,只需从方法返回。不过,记录这种情况是个好主意,这样您可以在测试时发现它
    • 否则,如果无法继续,则抛出异常。您希望尽早失败,以便能够轻松检测到问题。对于这种情况,一个合理的例外是IllegalStateException(参见Java等效于.NET System.InvalidOperationException)。它基本上表明此方法是在不适当的时间执行的。但是要小心,作为一个运行时异常,这些异常是未检查的,因此可能会导致应用程序崩溃
     类似资料:
    • 本文档介绍 DM 中各主要告警信息的处理方法。 高可用告警 DM_worker_offline 存在离线的 DM-worker 超过一小时会触发该告警。在高可用架构下,该告警可能不会直接中断任务,但是会提升任务中断的风险。处理告警可以查看对应 DM-worker 节点的工作状态,检查是否连通,并通过日志排查错误。 DM_DDL_error 处理 shard DDL 时出现错误,此时需要参考 DM

    • 我得到这个错误- (节点:18420)未处理的PromisejectionWarning:TypeError:无法读取未定义的属性“name” (节点:18420)未处理的PromisejectionWarning:未处理的promise拒绝。此错误源于在没有catch块的情况下抛出异步函数的内部,或者拒绝使用未处理的promise。catch()。要在未处理的promise拒绝时终止节点进程,请

    • 问题内容: 任何人都可以澄清一下下面的过程是否是正确的处理流程流的方法,而没有任何流缓冲区已满和阻塞问题 我正在从Java程序中调用外部程序,正在使用ProcessBuilder来构建流程,执行之后 我正在使用一种方法来处理流程 在我的方法中,我试图处理流程流 readStream方法用于读取我的流文本。 问题答案: 不,那不是正确的方法。 首先,在某些系统上,您的代码将永远停留在调用中,因为该过

    • 问题内容: 让我们开始考虑两种类型的相机旋转: 摄像机绕点旋转(轨道): 相机旋转目标(FPS) 然后是一个更新函数,其中从眼睛/目标/上摄像机矢量中计算出投影/视图矩阵: 当摄像机的视图方向与上轴平行(在此处为z-up)时,出现这些旋转功能的问题…在那时,摄像机的行为确实令人讨厌,因此我将遇到以下故障: 所以我的问题是,我该如何调整以上代码,使相机完整旋转,而最终结果在某些边缘点上看起来并不奇怪

    • 我有一个bot,它获取用户消息内容,删除用户消息,然后向消息发送私人消息。作者,然后在embed中发送用户消息的内容。在发送几条消息后,bot将发送2条消息,而不是1条,并显示警告。知道怎么修吗? 警告: superadmin@vps-XXXXXX:~/path$节点test.js(节点: 1059)UnHandledPromiseRejtionWarning: DiscordAPIError:未

    • 本文向大家介绍Java中断异常的正确处理方法,包括了Java中断异常的正确处理方法的使用技巧和注意事项,需要的朋友参考一下 处理InterruptedException 这个故事可能很熟悉:你正在写一个测试程序,你需要暂停某个线程一段时间,所以你调用 Thread.sleep()。然后编译器或 IDE 就会抱怨说 InterruptedException 没有抛出声明或捕获。什么是 Interru