【问题标题】:Eclipse Java switch-case fall-through warningEclipse Java switch-case 失败警告
【发布时间】:2016-12-19 13:17:45
【问题描述】:

所以我已经要求我的 Eclipse 编译器将此类 Switch Case 失败标记为警告:

Window > Preferences > Java > Compiler > Errors/Warnings > 'switch' 案例失败:--------------->警告

但是编译器并没有在下面的 sn-p 中警告我。我也许可以理解不标记case 1,但它肯定应该标记case 2?这不就是这个偏好的设计目的吗?

public static void main(String[] args) {
    int a = 2;
    switch (a) {
    case 1:
    case 2:
        System.out.println("Yay!");
    case 5:
        System.out.println("No!");
        break;
    default:
    }
}

产生输出:

耶!

不!

我尝试将级别更改为错误,当然也没有什么不同。

我正在使用 Eclipse Neon,顺便说一句。还有其他人在安装时注意到这种行为吗?

【问题讨论】:

  • 您是否找到过 Eclipse 会警告您失败的案例?
  • 如果您将 1 作为输入传递,那么 case2 也会被调用。所以?!
  • @LordFarquaad 实际上我不是,但接受的答案解释了原因。
  • @Mohammad Reza Khatami 是的,因为没有休息;他想得到他的编译器的警告。您是否重新启动了 eclipse 并重建了您的项目?
  • @MohammadRezaKhatami 这不是我打算发生的,所以称之为编程错误。我希望 Eclipse 警告我。

标签: java eclipse


【解决方案1】:

您需要重新构建项目才能使警告生效。我将您的main 方法按原样复制并粘贴到我的一个项目文件中,我可以毫无问题地看到警告。使用 Neon 4.6.0。

【讨论】:

  • 我确实重建了我必须说的项目。这是覆盖全局配置的项目特定设置!我的错 - 我不知道我是如何/为什么错过它的。
  • 很高兴您找到了解决方案。我通常更喜欢全局进行这些设置,而不是逐个项目地进行设置。
【解决方案2】:

不,我收到警告(Eclipse Mars)。也许您没有启用自动编译?或者您有一个覆盖全局配置设置的项目特定设置?

【讨论】:

  • 这是覆盖全局配置的项目特定设置!我的错 - 我不知道我是如何/为什么错过它的。
猜你喜欢
  • 1970-01-01
  • 2023-03-20
  • 2014-06-17
  • 1970-01-01
  • 2013-12-08
  • 1970-01-01
  • 2020-10-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多