注解处理器 APT:编译时生成代码
APT(Annotation Processing Tool)在编译阶段扫描注解,自动生成 Java 源文件或辅助代码,如 Lombok、MapStruct 等框架的核心机制。 · 难度:入门 · +15XP
注解处理器 APT:编译时生成代码
Java 注解处理器(APT)是 javac 的一部分,通过继承 AbstractProcessor 并实现 process 方法,可以在编译期间处理特定注解。处理器通过 RoundEnvironment 获取被注解的元素,然后使用 Filer 创建新的 Java 文件。通常需要注册处理器(META-INF/services 或使用 Google AutoService)。下面演示一个简单的处理器,为被 @Builder 注解的类生成一个 builder 方法。
// 注解定义
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.SOURCE)
public @interface Builder { }
// 处理器核心简化代码(需完整实现 AbstractProcessor)
// @AutoService(Processor.class)
// public class BuilderProcessor extends AbstractProcessor {
// @Override
// public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
// for (Element element : roundEnv.getElementsAnnotatedWith(Builder.class)) {
// // 使用 Filer 生成新的 Java 源文件
// }
// return true;
// }
// }