我得到:
NoSuchMethodError: com.foo.SomeService.doSmth()Z
我是否正确理解这个'Z'
意味着doSmth()方法的返回类型是 boolean 值?如果为 true,那么这种方法确实不存在,因为该方法返回一些 Collection。但另一方面,如果我调用此方法,我不会将其返回值分配给任何变量。我只是这样调用这个方法:
service.doSmth();
有什么想法为什么会发生这个错误吗?所有必需的 JAR 文件都存在,并且此类中的所有其他方法似乎都存在。
最佳答案
看起来方法在编译期间存在于类路径中,但在应用程序运行期间不存在。
我认为返回类型不是问题。如果是的话,就无法编译。当方法调用不明确时,并且当两个方法仅返回类型不同时,编译器会抛出错误。
关于Java "NoSuchMethodError",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31863995/