我越来越:

NoSuchMethodError: com.foo.SomeService.doSmth()Z

我是否正确理解此'Z'表示doSmth()方法的返回类型为 boolean 值?如果为true,则实际上不存在这种方法,因为此方法返回一些Collection。但是另一方面,如果我调用此方法,则不会将其返回值分配给任何变量。我只是这样调用此方法:
service.doSmth();

任何想法为什么会发生此错误?所有必需的JAR文件都存在,并且此类中的所有其他方法似乎都存在。

最佳答案

看起来方法在编译期间存在于类路径中,但在应用程序运行期间不存在。

我认为返回类型不是问题。如果是这样,它将无法编译。当方法调用不明确时,即两个方法仅在返回类型上有所不同时,编译器将引发错误。

10-07 22:46