2016-11-03 21 views
10

我可以使用annotationprocessor從頭開始生成類,但我無法像lombok那樣修改類。我在android studio中搜索了由lombok生成的類,但是我什麼也沒找到。然後我通過他們的網站查看了龍目島概況,並在論壇中對其進行了調查,但是我沒有任何結果。其實我的問題很簡單。例如,當我使用@Setter時,lombok如何將生成的代碼與地雷統一起來。我該如何開發一個處理器?Lombok如何在現有類上生成代碼?

回答

4

看起來像How does lombok work?的副本,我會標記爲關閉但你的賞金阻止它。

總之,龍目島實際上並沒有生成代碼。相反,它使用未指定和未記錄的內部編譯器實現API調用來直接修改程序在讀取源代碼和輸出編譯字節碼之間的抽象語法樹。它可能會在沒有警告的情況下突然中斷或者更新到新的編譯器版本,但目前沒有其他辦法。

+2

也可以重新「我如何開發一個處理器,如?」,最簡單的方法是編寫自定義Lombok註釋。見例如https://binkley.blogspot.co.uk/2014/12/writing-your-own-lombok-annotation.html – Rich

相關問題