0

我刚刚向枚举添加了一个方法。每当我调用该方法时,我都会得到一个 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 在清理/构建后抛出 NoSuchMethodError 。我错过了什么?

--

更新:Netbeans 有两个缓存文件夹。一个是空的,另一个是空的。那是我的错,显然我没有在缓存问题上投入足够的精力。不幸的是,我不能对自己的问题投反对票……

4

2 回答 2

4

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

确保清理并重建您的项目。

于 2013-04-04T10:29:06.290 回答
2

这可能是 Netbeans 特有的问题。特别是如果您使用“保存时编译选项”并且有一个具有很多依赖项的大项目。有关详细信息,请参见此处

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

请反馈。

于 2013-04-04T10:47:28.303 回答