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

什么是NoSuchmethod错误以及如何修复它?

郑俊彦
2023-03-14

我有一些代码,当我运行它时会产生一个错误,说:

NoSuchMethod:对null调用了方法“XYZ”

这意味着什么?我该如何修复它?

共有1个答案

彭允晨
2023-03-14

作为现实世界的比较,刚刚发生的是这样的对话:

嘿,汽车油箱里还剩下多少汽油?

你在说什么,我们没有车。

这正是您的程序中正在发生的事情。您想调用像\u car这样的函数。getGasLevel()但是没有car,变量\u carnull

显然,在你的程序中,它可能不是一辆汽车。它可以是一个列表、一个字符串或其他任何东西。

您试图使用一个null变量。要么您显式地将其设置为null,要么您根本不设置它,默认值为null

与任何变量一样,它可以传递到其他函数中。获取错误的位置可能不是源。您必须遵循从实际null值到其最初来源的线索,以找到问题所在和解决方案。

null可以有不同的含义:未设置为另一个值的变量将是null,但有时程序员故意使用null值来表示没有值。数据库具有可为空的字段,JSON缺少值。丢失的信息可能确实是信息本身。变量bool userwantspizzafordiner 可能用于true;当用户拒绝时,code>可能用于false;当用户尚未选择某个内容时,code>可能仍为null。这不是一个错误,它是故意使用的,需要相应地处理。

使用错误消息附带的堆栈跟踪来确定错误所在的行。然后在该行上设置断点。当程序到达断点时,检查变量的所有值。其中一个是null,找出是哪一个。

一旦你知道它是哪个变量,找出它是如何被null结束的。它从哪里来的?这个值一开始就没有设定过吗?这个值是另一个变量吗?那个变量是如何得到它的值的。这就像一行面包屑,你可以跟随它,直到你发现某个变量从未被设置,或者你发现某个变量被故意设置为null。如果是无意的,就修好它。将其设置为您想要的值。如果这是有意的,那么您需要在程序中进一步处理它。也许你需要另一个if来为这个案例做一些特别的事情。如果有疑问,您可以询问有意将其设置为null的人他们想要实现什么。

 类似资料:
  • 请解释Spring中关于异常的以下内容: 这是什么意思? 在什么条件下抛出? 如何预防? 这篇文章是关于使用Spring的应用程序中出现的全面问答。

  • 这个问题不同于关于调试异常的一般建议,因为问题的原因并不总是在调用堆栈上,而特定的建议是必要的。

  • 问题内容: 我在使用Node.js并将文件上传到服务器时遇到问题。为了将文件上传到服务器,我使用了这个插件。开始将文件上传到服务器时,Node.js进程崩溃并显示错误: 错误:ENOSPC。 服务器代码未运行。 问题答案: 运行以下命令以避免使用ENOSPC: 对于Arch Linux,将此行添加到: 然后执行: 这也将在重新启动后持续存在。 技术细节来源

  • 问题内容: 我对Linux中的$ PATH有一些疑问。 我知道它告诉shell搜索可执行文件的目录,因此: 环境变量是什么意思? 如何改变其路径?并建议更改它? 如果我更改它,后果是什么? 问题答案: 要获取路径当前变量,请输入: 它告诉您的Shell在哪里寻找二进制文件。 是的,您可以更改它-例如,使用自定义脚本添加到文件夹。 因此:如果要执行脚本,则必须输入脚本的完整路径: 更改变量后,只需键

  • 长话短说,我在看西蒙·佩顿·琼斯的演讲,在21:41的时候,他引用了一句话: 我当时正在处理一个bug,很沮丧,在ghci中输入了“修复错误”… 我试过了。 结果: 一开始我只是想,这个到底做了什么? 所以我看了一些类型 因此 但很明显,这仍然没有告诉我多少结果。 然而,更奇怪的是,即使是或的输出也和上面的一样是一个永不间断的输出(除了后者的输出,,缺少首字母)。 我在看什么? 需要明确的是,目前

  • 问题内容: 作为开发人员,我与E_NOTICE一起工作。不过最近,有人问我为什么应该修复E_NOTICE错误。我能提出的唯一理由是纠正这些问题的最佳实践。 还有其他人有任何理由证明纠正这些问题所花费的额外时间/成本吗? 更具体地说,如果代码已经起作用,为什么经理应该花钱修复这些问题? 问题答案: 摘要 在PHP运行时配置文件给你一些想法,为什么: 在开发过程中启用E_NOTICE有一些好处。 出于