我们总是教会确保在switch语句中使用 break 以避免掉线。
Java编译器警告这些情况,以帮助我们避免犯下微不足道的(但是极其严重的)错误。
然而,我使用了案例属性作为一个功能(我们不必在这里进入它,但它提供了一个非常优雅的解决方案)。
然而,编译器会发出大量警告,这些警告可能会掩盖我需要了解的警告。我知道如何更改编译器以忽略所有直通警告,但我希望在逐个方法的基础上实现这一点,以避免错过我不希望发生跌倒的地方。
任何想法?
答案 0 :(得分:37)
如果你真的,真的必须这样做,并且你确定你没有犯错,请查看@SuppressWarnings annotation。我想在你的情况下你需要
@SuppressWarnings("fallthrough")
答案 1 :(得分:4)
注释@SuppressWarnings
(javadoc)您要找的是什么?
例如:
@SuppressWarnings("unchecked")
public void someMethod(...) {
...
}
答案 2 :(得分:4)
完成关于SuppressWarnings
的其他答案:
@SuppressWarnings("fallthrough")
尝试在编译器级别压制所有直通警告是一件坏事:正如您所解释的那样,您需要通过警告的情况会被清楚地识别出来。因此,它应该明确地写在代码中(欢迎使用带有选项注释的@SuppressWarnings("fallthrough")
注释)。这样做,如果您真的忘记了代码中某处的中断,您仍然会收到拒绝警告。
答案 3 :(得分:1)
您可以创建一个'if'语句结构来代替switch。可能不会在视觉上令人愉悦,但也不是警告抑制。
答案 4 :(得分:0)
@SuppressWarnings("fallthrough")
Java始终遵循C风格的switch语句,除非您希望简单地完成并执行下面的代码,否则您需要明确地断开交换机。这当然是危险的,这种错误很难追查。在以下示例中,案例1没有中断:
@SuppressWarnings("fallthrough")
public void fallthroughTest(int i)
{
switch (i)
{
case 1:
// Execute both 1 and 2
case 2:
// Execute only 1
}
}