7

注释处理是否仍然是 Java 6+ 的一个活跃部分,或者它是否已被弃用/不鼓励/过时。如果过时,为什么(为什么不再需要/有用)?如果它仍然非常有用且“活跃”(针对 Java 6+ JDK 开发的新 Java 项目仍然会从中受益),请确认/纠正我对注释处理器如何使用的理解:

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

1 回答 1

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

我希望能解决您的理解问题。

于 2013-01-29T12:54:55.490 回答