在我们的一个类上通过一个简单的 getter 方法得到了 NoSuchMethodError。奇怪的是,我们可以调试代码并在调试器中看到错误发生(通过跳过相关行),但是我们也可以使用 IDE (IntelliJ IDEA) 来查看该方法是否存在。
通过IDExxxx.getYYY()
表达式评估器进行评估。然后xxxx.getClass().getMethods()
我们可以在列表中看到getYYY()
方法。我们已经尝试清除所有构建的文件、IDE 输出目录、IDE 缓存、重新启动等,但似乎没有任何帮助。
如果我们针对某些东西进行了编译,但随后在运行时发现了不同的 Jar/类,我会理解会发生 NoSuchMethodError。但这并没有向我解释为什么在运行时调试有问题的行时,我们可以看到该方法在那里,但是越过该行会引发异常。
尝试在另一台机器上重现,但它不会重现。
有人对这里可能发生的事情有任何见解吗?