1

我正在编写一个桌面和 j2me 应用程序。我在程序中有调试语句。目前为了避免那些被编译我使用如下。我们这样做是为了减小 jar 的大小。(专门针对手机)

ConstantFile.java
Boolean ConstantFile.DebugEnabled = false;

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

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

4

3 回答 3

2

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

于 2010-03-03T15:51:27.913 回答
0

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

于 2010-03-03T15:59:19.180 回答
0

我得到了我想要的确切答案。预处理器。与建议的hatchetman82 类似,有可用的wtkpreprocess 任务。它专门为移动设备开发。(虽然它也可以用于其他 java 部分。)而且它工作得很好。它注释掉一行,因此字节码保持更轻。

于 2010-03-17T12:02:40.627 回答