【发布时间】:2014-05-12 10:29:22
【问题描述】:
我在 OS X 10.9.2 上使用 Eclipse Kepler Service Release 2(J2EE 版)和 Java 6。
假设我有一个枚举:
public enum Colors { RED, GREEN, BLUE }
假设我有一个使用它的开关:
Colors color = ...
switch (color) {
case RED: return something();
case BLUE: return somethingElse();
default: throw new IllegalArgumentException("Unknown color: " color);
}
很明显,我忘记为GREEN 添加标签(也许我后来添加了它)。 Eclipse 正确地告诉我情况是这样的:switch() 语句中的color 下划线如下:
警告信息说:
The enum constant GREEN should have a corresponding case label in this enum switch on Colors.
To suppress this problem, add a comment //$CASES-OMITTED$ on the line above the 'default:'
我的问题:此警告不会出现在标记视图和问题视图中!现在找到它的唯一方法是转到带有switch() 的代码并查看黄色下划线。
这可能不是我的标记将其过滤掉的情况:配置内容 > 显示所有项目已选中,但警告不在列表中。
我做错了什么?
更新:将此警告级别更改为错误没有帮助 - 我的代码显示红色下划线,但问题/标记中仍然没有错误。 新鲜的 Eclipse 下载,新鲜的工作区解决了这个问题。 在不同的视角(J2EE/Java)之间切换没有帮助。
【问题讨论】:
-
您确定您收到此警告吗?
default将处理GREEN,所以应该没有警告。无法重现。我在所有地方都收到警告,或者(默认情况下)根本没有。 -
Eclipse 在
color这个词下划线,因此是一个警告。我只需要在警告列表中看到它。 -
可能是拼写检查器还是其他插件?将鼠标悬停在其上以查看详细信息。只要你有你的默认情况,你应该没问题。
-
@tobias_k 来自 OP 对已删除答案的评论:Window-Preferences-Java-Compiler-Erorrs/Warnings - 枚举上的不完整开关案例。我将此设置为“警告”,并且“即使存在'默认'情况也有信号”。
-
很遗憾没有。您可以使用 eclipse 可用的各种工作区清理可能性(有一些命令行参数可以做到这一点)和/或在创建新工作区时,您可以复制一些当前的设置。不过,这对我来说都是黑魔法,所以......祝你好运!