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

OnT*_*Fly 4 java annotations annotation-processing

我有

@ColumnMetadata(index=1)
...
@ColumnMetadata(index=2)
...
@ColumnMetadata(index=3)
...
Run Code Online (Sandbox Code Playgroud)

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

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

kap*_*pex 7

您可能希望使用可插入注释API,即apt工具的后继者.这是一个简短的入门教程:Java 6.0特性第2部分:可插入注释处理API

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

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