15

@Named最近我在 Kotlin 中遇到了 qualifier 的问题。我认为从这个改变:

var boldTypeface: Typeface? = null
[Inject] set

进入这个

var boldTypeface: Typeface? = null
[Inject Named("bold")] set

或者

var boldTypeface: Typeface? = null
[Inject] [Named("bold")] set

会解决我的问题。但它没有,它甚至没有编译。

4

1 回答 1

35

由于 Kotlin 改进了很多,我不得不更新我的答案。现在我正在使用 Kotlin 1.0 beta 3

要为一个属性正确设置多个注释,您必须使用@field注释:

@field:[Inject Named("bold")]
lateinit var boldTypeface: Typeface

请注意,我在lateinit这里使用,因此无需使用可为空的类型Typeface?

于 2015-02-06T09:38:07.223 回答