gpt4 book ai didi

java - 为什么我的方法会抛出 NoSuchMethodError?

转载 作者:行者123 更新时间:2023-12-04 20:48:42 25 4
gpt4 key购买 nike

我已经成功实现了 reflectionEquals 方法,其中包含一个排除字段列表。

return  EqualsBuilder.reflectionEquals(this, obj, new String[] {"files", "notes", "status"});

但是,我最近在 Java 1.5 上编译了我的程序,现在当程序运行到上述行时出现以下错误:

java.lang.NoSuchMethodError: org.apache.commons.lang.builder.EqualsBuilder.= reflectionEquals(Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/String;)Z

如果有人知道为什么该方法在运行时不存在,我将不胜感激

最佳答案

我遇到的每个 NoSuchMethodError 都(最终)被发现是编译时类路径上的外部库版本与运行时类路径上的库版本不匹配(即 - 在在这种情况下,在应用程序编译时和运行时,类路径中的 apache commons 版本会不同。)

当您的代码被编译时,该方法肯定存在 - 否则会抛出编译器错误。

检查类路径中 commons-lang.jar 的版本——我打赌你会发现不匹配的。

值得注意的是,这不是 MISSING jar 文件 - 会抛出 ClassNotFoundException(可能最终会引发 NoClassDefFoundError。)

关于java - 为什么我的方法会抛出 NoSuchMethodError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/864632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com