我正在使用Tomcat开发一个动态Web项目。拥有全局标志是很有用的,这是我在开发服务器和部署服务器之间唯一要做的更改。该标志的最大用途是与print语句一起使用。
public class Debug { public final static boolean DEVEL = true; public static void print(String message){ if(DEVEL){ System.out.println(message); } } }
我的问题是,java将编译出打印语句。即,如果devel标签为false,则消息显然不会打印,但会包含在类文件中(devel是最终的)。这是效率问题。我听说Java编译器非常聪明,但是它将对此进行补充。
使用“最终”属性(如您所做的那样),它将编译出代码:
public static final boolean DEVEL = false;
您可以通过grepping结果类文件来检查是否只有在编译代码后才会出现的字符串。