Kotlin Annotation Processor
如果有做過 Android 開發的話應該都有用過 annotation processor(又稱 codegen),即是在 build.gradle 入面要用 annotationProcessor
或者 kapt
的那些 dependency。用法大概是在 code 上加上一些 @
開頭的 annotation,然後 build 出來就會自動幫你生成相關的 class。簡單來說 annotation processor 就是用 code 來讓 Java compiler 生成 code。通常都是用來生成一些內容重覆的 code 來代替自己人手寫。
自己做一個功能不多的 annotation processor 其實都不太難。難的地方是 debug 時不能像平常般加 breakpoint,加上我們要生成 Kotlin class 所以跟平常找到的教學會有輕微出入(因為大部分教學都是討論生成 Java class)。
這篇文章會示範做一個生成 feature flag 的 class。這個 feature flag 其實就是一個 interface,入面有不同的 method,一個 method 代表一個 feature flag,它們都是會回傳 boolean。把它做成 interface 而不直接定義一堆…