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

时间:2013-01-08 05:08:05

标签: java android eclipse c-preprocessor

  

可能重复:
  How to mark java code such that it’s not compiled

中,我们可以阻止编译块代码:

#if 0

    //code here

#endif

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

任何人都可以帮助我吗?

6 个答案:

答案 0 :(得分:16)

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

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

if (false) {
    . . .
}

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

答案 1 :(得分:11)

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

答案 2 :(得分:6)

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

public final static boolean DEBUG = false;

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

请阅读:

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

答案 3 :(得分:1)

Java没有C语言的预处理器。

根据标签,您使用Eclipse,您只需标记要注释的整个代码块,然后使用 CTRL - /

您也可以使用相同的键序列取消注释已经注释掉的块。

答案 4 :(得分:1)

我使用的一种技术是使用m4作为java文件的预处理器。您在classname.java.m4中编写代码并使用Makefile或其他构建系统规则来运行m4:

%: %.m4
        @echo "/* automatically generated from $< -- don not edit*/" >$@
        m4 $< >>$@

答案 5 :(得分:1)

java不提供预处理器的功能。

顺便说一句,你可以使用评论如下:

您正在使用Eclipse,您只需标记要注释的整个代码块,然后使用CTRL + SHIFT + C进行注释并取消注释代码块。