Java插入式注解處理器
3. 實現(xiàn)原理
- Lombok 的核心工作原理就是編譯時注解(作用于 javac 編譯的過程中)
- 在Javac 解析成抽象語法樹之后(AST), Lombok 根據(jù)自己的注解處理器,動態(tài)的修改 AST,增加新的節(jié)點(所謂代碼),最終通過分析和生成字節(jié)碼
https://segmentfault.com/a/1190000041200280 自定義注解
- @Data注解,@Retention(RetentionPolicy.SOURCE) ,注解保留的時間是在源碼期間,編譯后該注解就會刪除,在刪除之前,編譯器會為其添加一些方法等等操作,即在編譯期為代碼進行了增強。
從 Javac 代碼的總體結(jié)構(gòu)來看,編譯過程大致可以分為 1 個準(zhǔn)備過程和 3 個處理過程:
- 準(zhǔn)備過程:初始化插入式注解處理器。
- 解析與填充符號表過程,包括:詞法、語法分析;填充符號表。
- 插入式注解處理器的注解處理過程。
- 分析與字節(jié)碼生成過程。
Other
- The balancing act