我正在使用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编译器非常聪明,但是会在此基础上进行学习。
最佳答案
使用“final”属性(如您所做的那样),它将编译出代码:public static final boolean DEVEL = false;
您可以通过grepping结果类文件来检查是否只有在编译代码后才会出现的字符串。