当前位置: 首页 > 面试题库 >

NoSuchFieldError Java

汤兴生
2023-03-14
问题内容

我的代码中出现一个NoSuchFieldError,现在oracle不太清楚为什么抛出此错误,只是说:
如果类的定义发生了不兼容的更改,则该错误只能在运行时发生。

有人可以向我解释一个人如何“不兼容地”改变一堂课吗?我正在谈论的课程扩展了很多课程,因此我怀疑这可能与该课程有关,但是我不知道从哪里开始寻找或寻找什么。


问题答案:

如果仅部分重新编译代码,通常会引发此错误。您有旧代码引用了在重新编译的类文件中不再存在的字段。

解决方案是清除所有类文件并重新编译所有内容。

更新: 如果重新编译所有内容后仍然出现相同的错误,则可能是针对外部库的一个版本进行编译,并在运行时使用另一个版本。

现在,您需要做的是首先确定导致问题的类(看起来已经完成了此工作),然后使用-verbose:class命令行选项运行应用程序。它将在您的标准中转出很多类加载信息,您将能够找到问题类的确切位置。



 类似资料:

相关阅读

相关文章

相关问答