注释处理工具< - 检查有效注释

时间:2011-12-14 20:10:47

标签: java annotations annotation-processing

我有

@ColumnMetadata(index=1)
...
@ColumnMetadata(index=2)
...
@ColumnMetadata(index=3)
...

我必须使用APT检查索引号是否唯一。我不知道该怎么做。我不懂教程,一般来说我在网上找材料有问题。

怎么做?有关APT的任何教程/任何内容吗?

1 个答案:

答案 0 :(得分:7)

您可能希望使用可插入注释API,即 apt 工具的后续版本。这是一个简短的入门教程:Java 6.0 Features Part – 2 : Pluggable Annotation Processing API

这大致是检查注释所需的步骤:

  1. 创建注释处理器,它应该扩展AbstractProcessor
  2. 定义要查找的注释,添加:
    @SupportedAnnotationTypes(value= {"full.name.of.ColumnMetadata"})
  3. 覆盖process方法。
  4. 使用RoundEnvironment参数访问源代码的元素。您需要什么元素取决于您想要做什么。
    • 自上而下的方法:getRootElements提供所有类,您可以筛选要检查的特定元素。如果要分析注释周围的代码结构(例如方法或属性注释所在的类),此方法很有用。
    • 自下而上的方法:getElementsAnnotatedWith使用此方法仅获取带注释的元素。您可以推断元素的位置,但如果要比较它们,可能需要跟踪元素(例如,通过将带注释元素的列表映射到类类型)。
  5. 遍历您想要的元素并获取AnnotationMirrorGet并检查值。
  6. 如果您要报告错误,请使用提供的Messager元素。您可以使用它在IDE中创建不错的编译器错误消息。