在c中,我们可以阻止编译块代码:
#if 0
//code here
#endif
因此,即使代码块容易出错代码编译,我想在Java中使用相同的东西,这样我就可以跳过那些因为缺少某些库而无法编译的代码部分。
任何人都可以帮助我吗?
答案 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进行注释并取消注释代码块。