如何在Kotlin中使用Dagger的2 @Named资格赛

时间:2015-02-06 09:38:07

标签: android kotlin dagger-2

最近我在Kotlin的@Named资格赛中遇到了问题。我认为改变了这一点:

var boldTypeface: Typeface? = null
[Inject] set

进入这个

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

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

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

1 个答案:

答案 0 :(得分:34)

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

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

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

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