寫在前面
如果你有使用過lombok和mapStruct等類似插件,對其實現原理好奇,那這篇文章可以幫助你瞭解它們的實現原理和套路
JSR 269
JSR 269: Pluggable Annotation Processing API(https://www.jcp.org/en/jsr/detail?id=269)
在JSR 269 之前可以使用註解,但必須藉助反射機制,而反射的方法侷限性較大,由於必須定義@Retention爲RetentionPolicy.RUNTIME,只能在運行期通過反射來獲取註解值,使得運行時代碼效率降低。其次,如果想在編譯階段利用註解來進行一些檢查,對用戶的某些不合理代碼給出錯誤報告,反射的使用方法就無能爲力了。
而 JSR 269 之後我們可以在