Как использовать квалификатор Dagger'S 2 @Named в 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 ответ:
Мне пришлось обновить свой ответ, так как Котлин значительно улучшился. Сейчас я использую Kotlin 1.0 beta 3
Чтобы правильно задать несколько аннотаций для свойства, вы должны использовать
@field
аннотацию:@field:[Inject Named("bold")] lateinit var boldTypeface: Typeface
Обратите внимание, что я использую
lateinit
здесь, поэтому нет необходимости использовать тип nullableTypeface?