我刚刚在枚举中添加了一个方法。每当我调用该方法时,我都会得到NoSuchMethodError:
public enum PHASE {
PHASE1,
PHASE2(false),
PHASE3;
private boolean present = true;
PHASE() {
}
PHASE(boolean present) {
this.present = present;
}
public boolean isPresent() {
return this.present;
}
}
public void foo(PHASE phase) {
if (phase.isPresent()) {
...
这里,phase.isPresent在clean / build之后抛出NoSuchMethodError。我错过了什么?
-
更新:Netbeans有两个缓存文件夹。一个是空的,另一个不是。这是我的坏,显然我没有在缓存问题上投入足够的精力。不幸的是,我无法回避我自己的问题...
答案 0 :(得分:4)
这可能是您的编译时类路径和运行时类路径之间的问题。 您在运行时的类/ jar文件与您在编译时使用的文件不同。
清洁并重建您的项目以确保。
答案 1 :(得分:2)
这可能是Netbeans特有的问题。特别是如果您使用"编译保存选项"并有一个有很多依赖项的大项目。有关详细信息,请参阅here。
我几乎每天都有这样的(基于maven的)项目非常类似的问题,并使用上面的链接找到了解决方案。最好说出解决方案的变化。试试这样:
请反馈。