是否可以创建类似 C 中可用并由Antenna提供的预处理器功能。我们可以使用APT 工具来实现这个功能吗?是否有类似主题的文章或链接?
问问题
3286 次
2 回答
2
注释并不是用来转换代码的工具。他们只是将元数据添加到代码中。例如,您不能将注释用于条件编译。
正如Sun 关于注释的教程所说:
注释提供有关程序的数据,这些数据不属于程序本身。它们对它们注释的代码的操作没有直接影响。
维基百科说:
编译 Java 源代码时,注释可以由称为注释处理器的编译器插件处理。处理器可以生成信息性消息或创建额外的 Java 源文件或资源,这些源文件或资源又可以被编译和处理,但处理器不能修改带注释的代码本身。
因此,注释处理器插件无法为您提供 C 预处理器拥有的所有功能。
于 2009-09-23T07:57:33.690 回答
2
您可以使用注释处理框架执行编译时任务。它不如预处理器强大,因为您不能执行以下操作:
@RunOnlyOn(OS.Mac) public void someMethod() { ... }
注释处理器的一些好的用例是:
- 从带注释的类创建映射文件,例如创建一个休眠映射文件;
- 创建具有特定注释的类的索引,例如从测试类的源文件夹创建 testng xml 文件;
- 强制执行通常不可用的编译时约束,例如使用无参数构造函数。
请注意,从 Java 6 开始不再需要 APT,因为所有正确声明的注释处理器都参与了编译。
于 2009-09-23T07:58:43.703 回答