Lombok原理和同時使?@Data和@Builder 的坑
往期熱門文章:
1、面試官 | Spring Boot 項目如何統(tǒng)一結(jié)果,統(tǒng)一異常,統(tǒng)一日志?
問題背景

Lombok @Data和@Builder分別單獨分析用法
編譯后的class為:可以看到不僅幫我們生成了get和set ,同時也有默認(rèn)的無參構(gòu)造器





解決方法
方法一

方法二

Lombok原理
Lombok 使?的是 JDK 6 實現(xiàn)的 JSR 269: Pluggable Annotation Processing API (編譯期的注解處理器),它是在編譯期時把 Lombok 的注解代碼,轉(zhuǎn)換為常規(guī)的 Java ?法?實現(xiàn)注?。 在編譯期階段,當(dāng) Java 源碼被抽象成語法樹 (AST) 之后,Lombok 會根據(jù)??的注解處理器動態(tài)的修改AST,增加新的代碼 (節(jié)點),在這?切執(zhí)?之后,再通過分析?成了最終的字節(jié)碼 (.class) ?件,這就是Lombok 的執(zhí)?原理。
?定義?個注解標(biāo)簽接?,并實現(xiàn)?個?定義的注解處理器; 利? tools.jar 的 javac api 處理 AST (抽象語法樹)3. 使??定義的注解處理器編譯代碼。








總結(jié)
轉(zhuǎn)自:https://juejin.cn/post/7103011031672176677
鏈接:樹洞君
最近熱文閱讀:
1、面試官 | Spring Boot 項目如何統(tǒng)一結(jié)果,統(tǒng)一異常,統(tǒng)一日志? 2、為什么不建議使用ON DUPLICATE KEY UPDATE? 3、Java8 Stream,過分絲滑! 4、8 種最坑SQL語法,工作中踩過嗎? 5、Java 語言“坑爹” TOP 10 6、你還不明白如何解決分布式Session?看這篇就夠了! 7、能解決 80% 故障的排查思路 8、程序員坐牢了,會被安排寫代碼嗎? 9、面試被問Nginx,怎么破? 10、為什么很多 SpringBoot 開發(fā)者放棄了 Tomcat,選擇了 Undertow? 關(guān)注公眾號,你想要的Java都在這里
評論
圖片
表情
