java中的#if,就像在c预处理器中一样

Cha*_*Pai 10 java eclipse android c-preprocessor

可能重复:
如何标记java代码,使其不被编译

,我们可以阻止编译块代码,如下所示:

#if 0

    //code here

#endif
Run Code Online (Sandbox Code Playgroud)

因此,即使代码块容易出错代码编译,我想在Java中使用相同的东西,这样我就可以跳过那些因为某些库缺失而无法编译的代码.

谁能帮我 ?

Ted*_*opp 18

Java中没有预处理器.根据您的构建系统,您可以使用第三方预处理器(您可以通过搜索"java预处理器"找到大量预处理器).一些例子是

根据您要注释的范围,您可以使用块注释,有时也可以使用

if (false) {
    . . .
}
Run Code Online (Sandbox Code Playgroud)

如果所有其他方法都失败了,只需使用注释掉每一行//.大多数IDE都有办法有效地执行此操作(并撤消它).


Hab*_*bib 14

你必须注释掉代码,你不能在java中使用预处理器指令.


Chu*_*k D 7

我假设编译器会删除使用常量/最终标志强制执行的块内的代码?这就是您可以在项目中保留最终apk中未提供的代码的方法.

public final static boolean DEBUG = false;

if(DEBUG) {
    //add messy error prone code here
    //compiler will strip this out as unreachable when false
}
Run Code Online (Sandbox Code Playgroud)

在这里阅读:

http://docs.oracle.com/javase/specs/jls/se7/html/jls-14.html#jls-14.21