在Kotlin中,有没有办法在委托属性上定义注释(例如:lazy
)?
class MyActivity: Activity() {
@ColorInt
val textColor: Int by lazy { ContextCompat.getColor(this, R.color.someColor) }
...
IDE在@ColorInt
注释中抛出错误:
此注释不适用于具有委托'
的目标'成员属性
答案 0 :(得分:13)
您可以使用@delegate
注释代理。
@delegate:ColorInt
val textColor: Int by lazy { ... }
delegate
(存储委托属性的委托实例的字段)。
答案 1 :(得分:10)
如果对getter进行注释就足够了,可以使用annotation use-site target,@get:ColorInt
:
@get:ColorInt
val textColor: Int by lazy { ... }