枚举中的Java NoSuchMethodError

时间:2013-04-04 10:25:13

标签: java netbeans compilation enums nosuchmethoderror

我刚刚在枚举中添加了一个方法。每当我调用该方法时,我都会得到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有两个缓存文件夹。一个是空的,另一个不是。这是我的坏,显然我没有在缓存问题上投入足够的精力。不幸的是,我无法回避我自己的问题...

2 个答案:

答案 0 :(得分:4)

这可能是您的编译时类路径和运行时类路径之间的问题。 您在运行时的类/ jar文件与您在编译时使用的文件不同。

清洁并重建您的项目以确保。

答案 1 :(得分:2)

这可能是Netbeans特有的问题。特别是如果您使用"编译保存选项"并有一个有很多依赖项的大项目。有关详细信息,请参阅here

我几乎每天都有这样的(基于maven的)项目非常类似的问题,并使用上面的链接找到了解决方案。最好说出解决方案的变化。试试这样:

请反馈。