Dans Kotlin, existe-t-il un moyen de définir une annotation sur une propriété déléguée (ex: lazy
)?
class MyActivity: Activity() {
@ColorInt
val textColor: Int by lazy { ContextCompat.getColor(this, R.color.someColor) }
...
Le IDE jette une erreur sur le @ColorInt
annotation:
Cette annotation ne s'applique pas à la cible "propriété de membre avec délégué"
Vous pouvez annoter le délégué avec @delegate
.
@delegate:ColorInt
val textColor: Int by lazy { ... }
De la documentation :
delegate
(le champ stockant l'instance déléguée pour une propriété déléguée).
Si l'annotation du getter vous suffit, vous pouvez utiliser annotation use-site target , @get:ColorInt
:
@get:ColorInt
val textColor: Int by lazy { ... }