如何禁止特定函数的Java编译器警告

我们总是被教导确保我们在switch语句中使用break来避免掉头。

Java编译器警告这些情况,以帮助我们不要做出微不足道(但是极其严重)的错误。

但是,我使用了案例属性作为一个function(我们不必在这里进入它,但它提供了一个非常优雅的解决方案)。

但是,编译器会发出大量警告,这些警告可能会掩盖我需要了解的警告。 我知道如何更改编译器以忽略所有直通警告,但我想在逐个方法的基础上实现这一点,以避免错过我不希望发生跌倒的地方。

有任何想法吗?

如果你真的,真的必须这样做,并且你确定你没有犯错,请查看@SuppressWarnings注释 。 我认为在你的情况下你需要

@SuppressWarnings("fallthrough") 

是注解@SuppressWarnings ( javadoc )你在寻找什么?

例如:

 @SuppressWarnings("unchecked") public void someMethod(...) { ... } 

要完成有关SuppressWarnings其他答案:

 @SuppressWarnings("fallthrough") 

尝试在编译器级别压制所有直通警告是一件坏事:正如您所解释的那样,您需要通过警告的情况会被清楚地识别出来。 因此,它应该明确地写在代码中( @SuppressWarnings("fallthrough")注释,欢迎使用optionnal注释)。 这样做,如果您真的忘记了代码中某处的中断,您仍然会收到拒绝警告。

您可以创建一个’if’语句结构来代替switch。 可能不是在视觉上令人愉悦,但也不是警告抑制。

 @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 } }