我刚刚为枚举添加了一个方法。每当调用该方法时,都会得到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()) {
...
这里阶段。isPresent在clean/build之后抛出NoSuchMethodError。我错过了什么?
,
更新:Netbeans有两个缓存文件夹。一个是空的,另一个不是。这是我的错,显然我没有在缓存问题上投入足够的精力。遗憾的是,我不能否决我自己的问题
这可能是编译时类路径和运行时类路径之间的问题。运行时使用的类/jar文件与编译时使用的不一样。
这可能是Netbeans特有的问题。特别是如果你使用"编译保存选项",并且有一个有很多依赖项的大项目。
我几乎每天都有一个非常类似的问题(基于maven的)项目,并使用上面的链接找到了解决方案。最好说是溶液的变化。试试这样:
- 在保存时禁用编译
- 关闭有问题的项目
- 关闭netbeans <
- 清楚缓存/gh>
- 打开netbeans和clean&build
请反馈。