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

Ron*_*onK 8 java eclipse annotations compilation

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

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

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

我想知道:

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

谢谢.

Pas*_*ent 6

您可以使用Java Annotation Processor(请参阅JSR 269:Pluggable Annotation Processing API).从注释检查在编译时使用Java注解处理器:

JSR 269声明您可以为编译器实现一个可以处理注释的插件.这个插件可以在编译时作为参数给出,因此当您的一个注释出现在源代码中时,将调用您的代码.

上面提到的链接提供了一个可以帮助您入门的示例.

也可以看看: