写在前面
下一篇:java AbstractProcessor 编译时注解(API)
Lombok 的getter、setter如何实现的?
答案就在AbstractProcessor 身上,继承AbstractProcessor 抽象类,java文件在编译时编译器会检查AbstractProcessor的子类,并根据这些子类的内容,对java文件进行动态修改,再生成class文件。
1、实现编译时注解
注意:不要将AbstractProcessor 和 使用该AbstractProcessor 的类写在同一个项目中
1.1、实现步骤
以maven项目为例(将实现编译时注解的功能放到项目b ,测试使用这个功能在项目a)
项目结构:

1.1.1、项目b的内容
b的pom.xml
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<!-- 提供@AutoService注解,让AbstractProcessor子类被编译器发现 -->
<!-- 如果不想使用@AutoService注解,也可以在resources/META-INF/services/javax.annotation.processing.Processor中添加AbstractProcessor的子类 -->
<dependency>
<groupId>com.google.auto.service</groupId>
<artifactId>auto-service</artifactId>
<version>1.0-rc5</version>
</dependency>
<!-- 提供JCTree等一些功能api -->
<dependency>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
<version>1.8</version>
<scope>system</scope>
<systemPath

本文详细指导如何在Java中使用AbstractProcessor创建编译时注解处理器,涉及项目结构设置、maven配置、HelloWorld注解及MyProcessor实现。遇到的问题与解决方案一并列出,同时概述了相关API的使用。
&spm=1001.2101.3001.5002&articleId=127447945&d=1&t=3&u=3f18f2649aa2468d831043592bb81a1f)
965

被折叠的 条评论
为什么被折叠?



