0

我需要我的代码编译过程之前 对它们*.java
执行一些操作
target filessource files

例如一个动作
注释所有System.out.println("");语句

需要在target files没有打印语句的情况下生成的输出,
但我source code files仍然需要打印语句

注:EclipseIDE下开发

4

1 回答 1

1

您确定为您的任务使用了正确的工具吗?

static final boolean使用变量来控制是否应该执行某些代码片段要简单得多。您可以将该值安排为编译时间常数;在这种情况下,通过此标志禁用的代码甚至不会出现在生成的字节代码中。但它也可能是运行时配置,例如

静态最终布尔调试 = Boolean.getBoolean("myapp.debug");

…</p>

if(DEBUG) System.out.println(something);

在这种情况下,命令行选项-Dmyapp.debug=true可能会启用打印输出。

这些变体之间没有性能差异(以及您的预处理方法)。JIT 足够聪明,可以在运行时消除所有条件代码。

于 2013-08-26T14:31:56.447 回答