如何抑制特定函数的Java编译器警告

问题描述 投票:0回答:5

我们总是被教导要确保在 switch 语句中使用 break 以避免失败。

Java 编译器会针对这些情况发出警告,以帮助我们避免犯一些微不足道(但严重)的错误。

但是,我使用了案例失败作为一项功能(我们不必在这里讨论它,但它提供了一个非常优雅的解决方案)。

然而,编译器会发出大量警告,这些警告可能会掩盖我需要了解的警告。我知道如何更改编译器以忽略所有失败警告,但我想逐个方法地实现这一点,以避免错过我不打算发生失败的地方。

有什么想法吗?

java warnings compiler-warnings suppress-warnings
5个回答
42
投票

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

@SuppressWarnings("fallthrough")

4
投票

要完成有关

SuppressWarnings
的其他答案:

@SuppressWarnings("fallthrough")

尝试在编译器级别抑制所有失败警告是一件坏事:正如您所解释的,您需要通过警告的情况已被明确识别。因此,它应该明确地写在代码中(欢迎带有可选注释的

@SuppressWarnings("fallthrough")
注释)。这样做,如果您真的忘记了代码中其他地方的中断,您仍然会收到失败警告。


3
投票

注释

@SuppressWarnings
javadoc)是您要找的吗?

例如:

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

0
投票
@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
    }
}

-1
投票

您可以创建“if”语句结构来代替 switch。 视觉上可能不那么令人愉悦,但警告压制也不是。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.