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

Moh*_*imi 9 java suppress-warnings unreachable-code

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

Law*_*Dol 10

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

if(false) {
    // code you don't want to run
    }
Run Code Online (Sandbox Code Playgroud)

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

if(true) { return blah; }
Run Code Online (Sandbox Code Playgroud)

要么

if(true) { throw new RuntimeException("Blow Up!"); }
Run Code Online (Sandbox Code Playgroud)

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

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

...

if(Debug.ON) {
    ...
    }
Run Code Online (Sandbox Code Playgroud)

  • 我喜欢这个警告,因为它提醒我回去做一些有关死代码的事情,但是IIRC在旧版本的Eclipse中默认为错误,所以我会求助于`if(Math.abs(0)== 0)`. (3认同)

Dan*_*rov 6

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

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