【发布时间】:2009-09-23 15:58:43
【问题描述】:
【问题讨论】:
-
-1 不清楚你想要什么。
标签: java annotations preprocessor
【问题讨论】:
标签: java annotations preprocessor
注解并不是用来转换代码的工具;他们只是将元数据添加到代码中。例如,您不能将注释用于条件编译。
正如Sun's tutorial on annotations 所说:
注解提供不属于程序本身的程序的数据。它们对它们注释的代码的操作没有直接影响。
Wikipedia 说:
编译 Java 源代码时,注释可以由称为注释处理器的编译器插件处理。处理器可以生成信息性消息或创建额外的 Java 源文件或资源,然后可以对其进行编译和处理,但处理器不能修改带注释的代码本身。
因此,注释处理器插件无法为您提供 C 预处理器拥有的所有功能。
【讨论】:
您可以使用注释处理框架执行编译时任务。它不如预处理器强大,因为您不能执行以下操作:
@RunOnlyOn(OS.Mac) public void someMethod() { ... }
注释处理器的一些好的用例是:
请注意,从 Java 6 开始不再需要 APT,因为所有正确声明的注解处理器都会参与编译。
【讨论】: