Java:如何@SuppressWarnings无法访问代码?

时间:2011-05-17 01:33:06

标签: java suppress-warnings unreachable-code

有时在调试时,您无法访问代码片段。无论如何要抑制警告吗?

4 个答案:

答案 0 :(得分:10)

Java(原始)支持这样的调试,因为布尔常量上的简单if不会生成这样的警告(实际上,当评估为false时,编译器将删除整个条件块)。所以你可以这样做:

if(false) {
    // code you don't want to run
    }

同样,如果您临时插入提前终止进行调试,您可能会这样做:

if(true) { return blah; }

if(true) { throw new RuntimeException("Blow Up!"); }

请注意,Java规范明确声明在编译时不断删除错误的条件块,并且IIRC,不断真实的条件块已删除条件。这包括:

public class Debug
{
static public final boolean ON=false;
}

...

if(Debug.ON) {
    ...
    }

答案 1 :(得分:6)

在任何编译器上执行此操作的唯一方法是@SuppressWarnings("all")

如果您正在使用Eclipse,请尝试@SuppressWarnings("unused")

答案 2 :(得分:3)

作为Cletus tells us

  

这取决于您的IDE或编译器。

那就是说,至少对于Eclipse来说,没有办法做到这一点。使用Eclipse配置,无法访问的代码会导致编译时错误,而不仅仅是警告。另请注意,这与“死代码”不同,例如

if (false)
{
    // dead code here
}

Eclipse(默认情况下)发出警告,而不是错误。

答案 3 :(得分:3)

根据Java Language Specification

  

如果由于无法访问语句而无法执行该语句,则为编译时错误。

您有时可以将无法访问的代码转换为死代码(例如,if (false) {...}的正文)。但这是一个错误是语言定义的一部分。