Типы могут содержать только один конструктор @Inject - PullRequest
2 голосов
/ 19 марта 2019

Модель данных

data class AuthDataModel @Inject constructor(
                   var username: String = "",
                   var password: String = "",
                   var mobileData: String = "

Объяснение

Я пытаюсь внедрить модель данных аутентификации в модель представления аутентификации в kotlin, но она не компилируется с сообщением («Типы могут содержать только один конструктор @Inject)

1 Ответ

6 голосов
/ 19 марта 2019

Перемещение моего комментария к ответу:

Если у вас есть конструктор с аргументами по умолчанию, Kotlin фактически генерирует дополнительные конструкторы. В вашем случае у вас есть конструктор с 3 аргументами, где все являются необязательными, что генерирует всего 4 конструктора. Kotlin, очевидно, связывает любые аннотации первичного конструктора со всеми сгенерированными, что означает, что вы получили 4 конструктора.

У вас есть два варианта:

Во-первых, как вы упомянули сами, удалите все значения по умолчанию. Если значения по умолчанию отсутствуют, создается только один конструктор с аннотацией.

Кроме того, вы также можете создавать дополнительные конструкторы самостоятельно и указывать их на основной. Это также позволит вам вручную указать только один, чтобы иметь аннотацию @Inject, в то время как другие не имеют.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...