Intereting Posts
Установите Intent-flags для PreferenceScreen в xml Как сделать SearchView всегда расширенным в Android? Runnable отправляется успешно, но не выполняется Не удается запустить активность на Android через Unity Как преобразовать длинное значение даты в формат mm / dd / yyyy Android: AsyncTask ProgressDialog не откроется в ActivityGroup С 0.4.3 Android Studio, ошибка: «Синхронизация проекта Gradle не удалась. Основные функции (например, редактирование, отладка) не будут работать должным образом " Как проверить ListActivity, издеваясь над его contentProvider и тем самым изолировать тест от базы данных? «Вы не указали представление для использования в качестве содержимого для всплывающих окон» Google App Engine и Android Android: видео возобновляется после изменения ориентации Как повернуть просмотр видео в Android? Android: держать предупреждение впереди, чтобы пользователь ответил Как заставить приложение работать в android? Получить данные POST с Android Webview

Как использовать квалификатор 2 @Named от Dagger в Котлине

Недавно у меня возникла проблема с @Named в Котлине. Я думал, что переход от этого:

 var boldTypeface: Typeface? = null [Inject] set 

В этот

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

или

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

Решит мою проблему. Но это не так, это даже не компиляция.

Мне пришлось обновить свой ответ, так как Котлин много улучшился. Сейчас я использую Kotlin 1.0 beta 3

Чтобы правильно задать несколько аннотаций для свойства, вы должны использовать аннотацию @field :

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

Обратите внимание, что я использую lateinit здесь, поэтому нет необходимости использовать NULL-тип Typeface?