Java中的条件编译(转)

源: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类型的。这样条件中的代码就不会编译成字节码了。

原文地址:https://www.cnblogs.com/LittleTiger/p/4556389.html