2010-03-03 71 views
1

我在写一个桌面和j2me应用程序。我在程序中有调试语句。目前为了避免那些得到编译我使用如下。我们正在这样做,以减少罐子的大小。 (特别针对手机)将预编译指令传递给javac?

ConstantFile.java 
Boolean ConstantFile.DebugEnabled = false; 

if(ConstantFile.DebugEnabled) { 
log.debug("msg"); 
} 

但是这是一种硬编码。有没有像C这样的替代方案,我们有预先编译的指令。注解可以在这里帮助吗?或者我应该寻找的其他东西?

回答

0

我有我想要的确切答案。预处理。类似hatchetman82的建议,有wtkpreprocess任务可用。它专门为手机开发。 (虽然它也可以用于其他Java部分。)它完美地工作。它注释行,所以字节码保持较轻。

2

不,在Java中没有预编译,但是不是像当前使用的那样使用常量文件,而是尝试使用Log4j或其他支持isDebugEnabled()操作的其他日志记录软件包。这将避免硬编码而支持配置文件或VM参数。

0

注释可以工作,或者你可以看AOP。 AOP将允许您在特定点自动将代码插入到您的方法中。无论哪种方式应该得到你想要的。