Kotlinで、委任されたプロパティにアノテーションを定義する方法はありますか(例:lazy
)?
class MyActivity: Activity() {
@ColorInt
val textColor: Int by lazy { ContextCompat.getColor(this, R.color.someColor) }
...
IDEは@ColorInt
アノテーションでエラーをスローします:
この注釈は、ターゲット「デリゲートを持つメンバープロパティ」には適用されません
デリゲートに@delegate
で注釈を付けることができます。
@delegate:ColorInt
val textColor: Int by lazy { ... }
ドキュメント から:
delegate
(委任されたプロパティのデリゲートインスタンスを格納するフィールド)。
ゲッターに注釈を付けるだけで十分な場合は、 annotation use-site target 、@get:ColorInt
:
@get:ColorInt
val textColor: Int by lazy { ... }