注释类型的扩展功能

是否有可能像这样在注释类型上定义Kotlin扩展函数?

@ColorInt fun @ColorInt Int.darken(): Int { return ColorUtils.blendARGB(this, Color.BLACK, 0.2f) } 

替代形式:

 @ColorInt fun (@ColorInt Int).darken(): Int { return ColorUtils.blendARGB(this, Color.BLACK, 0.2f) } 

这将对应于以下静态功能:

 @ColorInt fun darken(@ColorInt color: Int): Int { return ColorUtils.blendARGB(color, Color.BLACK, 0.2f) } 

我不认为使用Kotlin是可能的,但是在Kotlin的后续版本中可以添加这个功能吗?

注意:同样的问题也适用于@[resource type]Res @StringDef@[resource type]Res @StringDef@[resource type]Res

是的你可以。 使用以下语法:

 @ColorInt fun @receiver:ColorInt Int.darken(): Int { return ColorUtils.blendARGB(this, Color.BLACK, 0.2f) } 

有关注释使用站点目标的更多信息: http : //kotlinlang.org/docs/reference/annotations.html#annotation-use-site-targets