如何基于注释挂钩自定义编译器逻辑

时间:2010-06-19 20:20:59

标签: java eclipse annotations compilation

我想定义一些注释,这些注释将允许在编译期间报告额外的警告/错误(概念类似于 IntelliJ 中的@Nullable@NotNull注释

我希望能够编写一些编译器钩子,它们也会根据这些属性添加我的编译逻辑。

如果可能的话,我想要一个通用的钩子,但是因为我们使用Eclipse - 如果我们有这种能力也会有好处。

我想知道:

  1. 有可能吗? (上述任何选项)
  2. 我从哪里开始?
  3. 到目前为止,我对注释的经验不多,所以如果我以错误的方式解决这个问题 - 我想知道这一点,如果可能的话,可以找到更好的方向。
  4. 感谢。

1 个答案:

答案 0 :(得分:6)

您可以使用Java Annotation Processor(请参阅JSR 269: Pluggable Annotation Processing API)。来自Annotation checking at compile time with Java Annotation Processor

  

JSR 269声明你可以   为编译器实现一个插件   它可以处理注释。这个   插件可以作为参数给出   编译时间,所以你的代码将是   当你的一个注释时调用   出现在源代码中。

上述链接提供了一个可以帮助您入门的示例。

另见: