有时在调试时,代码片段无法访问。有没有办法抑制警告?
Java对这样的调试有(原始)支持,因为对布尔常量的简单if
不会生成这样的警告(事实上,当计算为假时,编译器将删除整个条件块)。 所以你可以做到:
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) {
...
}
在任何编译器上执行此操作的唯一方法是@SuppressWarnings("all")
。
如果您使用的是 Eclipse,请尝试@SuppressWarnings("unused")
。
正如Cletus告诉我们的,
这取决于您的 IDE 或编译器。
也就是说,至少对于Eclipse来说,没有办法做到这一点。在我的 Eclipse 配置中,无法访问的代码会导致编译时错误,而不仅仅是警告。另请注意,这与"死代码"不同,例如
if (false)
{
// dead code here
}
Eclipse(默认情况下)会发出警告,而不是错误。
根据 Java 语言规范:
如果语句由于无法访问而无法执行,则为编译时错误。
您有时可以将无法访问的代码转换为死代码(例如,if (false) {...}
的主体)。但这是一个错误是语言定义的一部分。