更改方法的返回类型会给出 java.lang.NoSuchMethodError

2024-01-25

我更改了库中接口中一个方法的返回类型。 以前它是空的,我修改它以返回一个对象。我没有更改模块中的代码,因为我不想对返回的对象执行任何操作(它用于不同的模块) 我使用新的库 jar 编译了我的模块并运行了运行良好的单元测试,但是当我将 jar 与库 jar 一起推送到生产环境并运行该模块时,我在界面上更改的方法收到 java.lang.NoSuchMethodError 。 我修改了接口和实现,两者都在库 jar 中,并且我使用 spring 注释将实现对象注入到我的模块中。 造成这个问题的可能原因是什么?


在Java字节码中,方法的返回类型是方法签名的一部分,它区分具有相同名称和相同参数的两个方法(这是在Java语言中无法做到的)。因此,您以某种方式调用此方法的代码不会重新编译,并且它仍然尝试调用返回 void 的方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更改方法的返回类型会给出 java.lang.NoSuchMethodError 的相关文章

随机推荐