【问题标题】:Eclipse misses a warning (enum in switch)Eclipse 错过了一个警告(开关中的枚举)
【发布时间】: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 可用的各种工作区清理可能性(有一些命令行参数可以做到这一点)和/或在创建新工作区时,您可以复制一些当前的设置。不过,这对我来说都是黑魔法,所以......祝你好运!

标签: java eclipse enums


【解决方案1】:

如果您在源代码编辑器中看到错误或警告,但它没有显示在问题视图中,则您可能禁用了自动构建。问题视图中的标记只会在构建运行后显示。无论构建如何,源代码编辑器中的标记都将在您完成输入后立即可用。

所以..

  1. 刷新项目
  2. 从项目菜单触发干净构建
  3. 此时标记应显示在问题视图中
  4. 要查看问题视图时,要么打开自动构建,要么记得手动触发构建

【讨论】:

  • 不幸的是,事实并非如此。几个月来我一直看到这个错误,同时我已经重建了这个应用程序一百万次。我有 99.9% 的时间都在自动构建。
猜你喜欢
  • 2023-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-23
  • 2012-03-05
相关资源
最近更新 更多