我们总是被教导要确保在 switch 语句中使用 break 以避免失败。
Java 编译器会针对这些情况发出警告,以帮助我们避免犯一些微不足道(但严重)的错误。
但是,我使用了案例失败作为一项功能(我们不必在这里讨论它,但它提供了一个非常优雅的解决方案)。
然而,编译器会发出大量警告,这些警告可能会掩盖我需要了解的警告。我知道如何更改编译器以忽略所有失败警告,但我想逐个方法地实现这一点,以避免错过我不打算发生失败的地方。
有什么想法吗?
如果您真的、真的必须这样做,并且您确定自己没有犯错误,请查看 @SuppressWarnings 注释。我想在你的情况下你需要
@SuppressWarnings("fallthrough")
SuppressWarnings
的其他答案:
@SuppressWarnings("fallthrough")
尝试在编译器级别抑制所有失败警告是一件坏事:正如您所解释的,您需要通过警告的情况已被明确识别。因此,它应该明确地写在代码中(欢迎带有可选注释的
@SuppressWarnings("fallthrough")
注释)。这样做,如果您真的忘记了代码中其他地方的中断,您仍然会收到失败警告。
注释
@SuppressWarnings
(javadoc)是您要找的吗?
例如:
@SuppressWarnings("unchecked")
public void someMethod(...) {
...
}
@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
}
}
您可以创建“if”语句结构来代替 switch。 视觉上可能不那么令人愉悦,但警告压制也不是。