Java中的条件编译(转)
一直以来,不知道怎么在Java中实现像C/C++一样的#ifdef...#endif这样的预编译宏,致使Java代码中一直用if判断,刚好刚才看到了解决办法,记录一下。
C/C++中使用#ifdef...#endif的代码,如果不满足条件,编译器是不会对这部分代码进行编译的。但是Java中没有宏定义啊,怎么办呢?
其实在Java中也有解决办法。
Java编译器优化机制中有这么一条:对于条件表达式中永远为false的语句,编译器将不对条件覆盖的代码段生成字节码。
例如:
final boolean debug = false; if(debug){ printf("I'm in debug mode!"); }
注意上面条件debug必须是final类型的。这样条件中的代码就不会编译成字节码了。