Java插入式注解处理器
3. 实现原理
- Lombok 的核心工作原理就是编译时注解(作用于 javac 编译的过程中)
- 在Javac 解析成抽象语法树之后(AST), Lombok 根据自己的注解处理器,动态的修改 AST,增加新的节点(所谓代码),最终通过分析和生成字节码
https://segmentfault.com/a/1190000041200280 自定义注解
- @Data注解,@Retention(RetentionPolicy.SOURCE) ,注解保留的时间是在源码期间,编译后该注解就会删除,在删除之前,编译器会为其添加一些方法等等操作,即在编译期为代码进行了增强。
从 Javac 代码的总体结构来看,编译过程大致可以分为 1 个准备过程和 3 个处理过程:
- 准备过程:初始化插入式注解处理器。
- 解析与填充符号表过程,包括:词法、语法分析;填充符号表。
- 插入式注解处理器的注解处理过程。
- 分析与字节码生成过程。
Other
- The balancing act