yuanrengu / yuanrengu.github.io

欢迎访问:https://yuanrengu.com/
2 stars 0 forks source link

Lombok介绍、使用方法和总结 | 猿人谷 #17

Open yuanrengu opened 4 years ago

yuanrengu commented 4 years ago

https://yuanrengu.github.io/2020/baec5dff.html

1 Lombok背景介绍官方介绍如下: Project Lombok makes java a spicier language by adding ‘handlers’ that know how to build and compile simple, boilerplate-free, not-quite-java code. 大致意思是Lombok通过增加一些“处理程序

yuanrengu commented 4 years ago

针对读者的疑问,说3点:

  1. 有读者说Lombok 的实现是基于反射,其实和反射没有任何关系,反射是程序在运行期的一种自省(introspect)能力,而 Lombok 的实现是在编译期就完成了。
  2. Lombok 是基于 JSR 269: Pluggable Annotation Processing API 来实现的,也就是通过编译期自定义注解处理器来实现的。
  3. 在编译期阶段,当Java源码被抽象成语法树(AST)之后,Lombok会根据自己的注解处理器动态修改AST,增加新的代码(节点),在这一切执行之后就生成了最终的字节码(.class)文件,这就是 Lombok 的执行原理。