我们总是被教导要确保在 switch 语句中使用中断来避免失败。
Java 编译器会针对这些情况发出警告,以帮助我们避免犯微不足道的(但严重的)错误。
但是,我将使用案例失败作为一个功能(我们不必在这里深入探讨,但它提供了一个非常优雅的解决方案)。
但是,编译器会吐出大量警告,这些警告可能会掩盖我需要了解的警告。我知道如何更改编译器以忽略所有失败警告,但我想逐个方法实现这一点,以避免错过我不打算发生失败的地方。
有任何想法吗?
我们总是被教导要确保在 switch 语句中使用中断来避免失败。
Java 编译器会针对这些情况发出警告,以帮助我们避免犯微不足道的(但严重的)错误。
但是,我将使用案例失败作为一个功能(我们不必在这里深入探讨,但它提供了一个非常优雅的解决方案)。
但是,编译器会吐出大量警告,这些警告可能会掩盖我需要了解的警告。我知道如何更改编译器以忽略所有失败警告,但我想逐个方法实现这一点,以避免错过我不打算发生失败的地方。
有任何想法吗?
如果您真的必须这样做,并且您确定自己没有犯错,请查看@SuppressWarnings 注释。我想在你的情况下你需要
@SuppressWarnings("fallthrough")
注释@SuppressWarnings
( javadoc ) 是您要查找的吗?
例如:
@SuppressWarnings("unchecked")
public void someMethod(...) {
...
}
要完成有关的其他答案SuppressWarnings
:
@SuppressWarnings("fallthrough")
尝试在编译器级别抑制所有失败警告是一件坏事:正如您所解释的,清楚地确定了需要通过警告的情况。因此,它应该明确地写在代码中(@SuppressWarnings("fallthrough")
带有可选注释的注释是受欢迎的)。这样做,如果您真的忘记了代码中其他地方的中断,您仍然会收到失败警告。
您可以创建一个“if”语句结构来代替开关。可能在视觉上不那么令人愉悦,但警告抑制也不是。
@SuppressWarnings("fallthrough")
Java 一直遵循 C 风格的 switch 语句,在这种情况下,您需要显式地跳出 switch,除非您希望简单地通过并执行以下案例中的代码。当然,这可能很危险,而且这类错误很难追查。在以下示例中,案例 1 缺少中断:
@SuppressWarnings("fallthrough")
public void fallthroughTest(int i)
{
switch (i)
{
case 1:
// Execute both 1 and 2
case 2:
// Execute only 1
}
}