委托属性的Kotlin注释

时间:2017-11-10 01:27:28

标签: android annotations kotlin

在Kotlin中,有没有办法在委托属性上定义注释(例如:lazy)?

class MyActivity: Activity() {

    @ColorInt
    val textColor: Int by lazy { ContextCompat.getColor(this, R.color.someColor) }
    ...

IDE在@ColorInt注释中抛出错误:

  

此注释不适用于具有委托'

的目标'成员属性

2 个答案:

答案 0 :(得分:13)

您可以使用@delegate注释代理。

@delegate:ColorInt
val textColor: Int by lazy { ... }

来自documentation

  
      
  • delegate(存储委托属性的委托实例的字段)。
  •   

答案 1 :(得分:10)

如果对getter进行注释就足够了,可以使用annotation use-site target@get:ColorInt

@get:ColorInt
val textColor: Int by lazy { ... }