现代Java注释处理

时间:2013-01-28 19:01:15

标签: java annotations annotation-processing

注释处理仍然是Java 6+的活跃部分,还是已被弃用/不鼓励/过时的东西。如果过时了,为什么(为什么它不再需要/有用)?如果它仍然非常有用并且“活跃”(针对Java 6+ JDK开发的新Java项目仍将从中受益),请确认/更正我对 如何使用注释处理器:< / p>

  1. 您可以创建自己的注释类,例如@MyAnnotation
  2. 使用@MyAnnotation
  3. 标记某些类,方法,字段等
  4. 在构建过程中,您调用自定义MyAnnotationProcessor如何?
  5. 处理器扫描您的类路径以查找@MyAnnotation
  6. 的实例
  7. 通常,注释处理器执行动态字节码注入,即时修改/增强已编译的类

1 个答案:

答案 0 :(得分:16)

  1. 正确。
  2. 正确。
  3. 正确。通常,您将扩展AbstractProcessor。您使用ServiceLoader模式指定了MyAnnotationProcessor类 - 这使得编译器可以发现它。 Processor Javadoc包含有关创建此类的一些信息。
  4. 正确。
  5. 这部分不正确。注释处理器框架不允许您修改类。作为构建的一部分,您将需要使用一些后编译过程来执行此操作。 做什么允许您做的是创建新文件。这些可能是简单的资源,新的Java源文件(随后将在同一编译期间需要并且符合注释处理器的条件)或Java类文件。您还可以对源代码执行自定义检查并将错误写入日志(导致编译失败)。
  6. 我希望能解决您的理解问题。