annotationProcessor
、kapt
和 ksp
都是用于处理代码注解(Annotation)并生成额外代码的工具,但它们在技术实现、适用场景和性能方面有所不同。以下是它们的区别和用途:
1. annotationProcessor
- 适用场景:
专为 Java 项目设计,用于在 Java 编译时处理注解(如 Lombok、Dagger 等)。 - 工作原理:
在 Java 编译阶段调用注解处理器(Annotation Processor),根据注解生成代码(如DaggerComponent
或Room_Database
类)。 - 配置方式:
在 Gradle 中通过annotationProcessor
声明依赖:dependencies { annotationProcessor "com.google.dagger:dagger-compiler:2.x" }
- 限制:
无法直接处理 Kotlin 代码,因为 Kotlin 的编译流程与 Java 不同。