Lombok实现原理

Java插入式注解处理器

3. 实现原理

  • Lombok 的核心工作原理就是编译时注解(作用于 javac 编译的过程中)
  • 在Javac 解析成抽象语法树之后(AST), Lombok 根据自己的注解处理器,动态的修改 AST,增加新的节点(所谓代码),最终通过分析和生成字节码

https://segmentfault.com/a/1190000041200280 自定义注解

  • @Data注解,@Retention(RetentionPolicy.SOURCE) ,注解保留的时间是在源码期间,编译后该注解就会删除,在删除之前,编译器会为其添加一些方法等等操作,即在编译期为代码进行了增强。

从 Javac 代码的总体结构来看,编译过程大致可以分为 1 个准备过程和 3 个处理过程:

  1. 准备过程:初始化插入式注解处理器。
  2. 解析与填充符号表过程,包括:词法、语法分析;填充符号表。
  3. 插入式注解处理器的注解处理过程。
  4. 分析与字节码生成过程。

Other

  • The balancing act
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容