我越来越:

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


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

service.doSmth();


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

最佳答案

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

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

关于java - Java“NoSuchMethodError”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31863995/

10-09 05:17