Lombok實現(xiàn)原理

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 個處理過程:

  1. 準(zhǔn)備過程:初始化插入式注解處理器。
  2. 解析與填充符號表過程,包括:詞法、語法分析;填充符號表。
  3. 插入式注解處理器的注解處理過程。
  4. 分析與字節(jié)碼生成過程。

Other

  • The balancing act
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容