发布于 2009-09-23 07:57:34
注释并不是用于转换代码的工具;它们只是将元数据添加到代码中。例如,您不能将注释用于条件编译。
正如Sun's tutorial on annotations所说:
注释提供有关程序的数据,而该程序本身不是该程序的一部分。它们对它们所注释的代码的操作没有直接影响。
编译Java源代码时,可以由称为批注处理器的编译器插件处理批注。处理程序可以生成信息性消息或创建额外的Java源文件或资源,这些文件或资源可以被编译和处理,但处理程序不能修改带注释的代码本身。
因此,批注处理器插件无法为您提供C预处理器所具有的所有功能。
发布于 2009-09-23 07:58:44
您可以使用批注处理框架执行编译时任务。它不像预处理器那样强大,因为你不能做这样的事情:
@RunOnlyOn(OS.Mac) public void someMethod() { ... }
批注处理器的一些很好的用例是:
)创建testng文件
请注意,从Java6开始,不再需要APT,因为所有正确声明的批注处理器都会参与编译。
https://stackoverflow.com/questions/1464544
复制相似问题