首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >虚假NoSuchMethodError

虚假NoSuchMethodError
EN

Stack Overflow用户
提问于 2011-06-22 16:26:32
回答 2查看 474关注 0票数 2

我通过一个简单的getter方法在我们的一个类上获得了一个NoSuchMethodError。奇怪的是,我们可以调试代码并看到错误发生在调试器中(通过单步执行相关的行),但是我们也可以使用集成开发环境(IntelliJ IDEA)来查看方法是否存在。

通过xxxx.getYYY()表达式求值器可以很好地进行计算。转到xxxx.getClass().getMethods(),我们可以在列表中看到getYYY()方法。我们已经尝试清理所有的构建文件,IDE输出目录,IDE缓存,重启等,但似乎没有任何帮助。

我可以理解,如果我们已经针对某些东西进行了编译,但是在运行时发现了不同的NoSuchMethodError /类,那么就会发生Jar。但这并不能解释为什么在运行时调试到有问题的行时,我们可以看到方法在那里,但是跨过这行会抛出异常。

已尝试在另一台计算机上复制,但无法复制。

有没有人知道这里可能会发生什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-22 16:37:24

很可能您在IntelliJ中运行的代码版本与您正在编辑的代码版本不同。我经常遇到这个问题,因为有许多maven项目同时打开,并且依赖于我正在编辑的内容的不同版本。IntelliJ可能会混淆(或者我搞不清我实际运行的是哪个版本)

票数 2
EN

Stack Overflow用户

发布于 2015-09-04 05:35:06

NoSuchMethodError -这通常发生在运行时。我遇到了这个错误,原因是我的类路径中asm和cglib库的版本不兼容。

asm和cglib库被许多框架使用,如hibernate、spring、hadoop,用于运行时字节码操作。

Classloader总是引用类路径上的第一个jar版本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6436981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档