类型只能包含一个@Inject构造函数

时间:2019-03-19 11:54:55

标签: android kotlin

数据模型

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

说明

我正在尝试将身份验证数据模型注入kotlin中的身份验证视图模型,但是它不能与message一起编译(“类型只能包含一个@Inject构造函数)

1 个答案:

答案 0 :(得分:5)

将我的评论移至答案:

如果您的构造函数带有默认参数,Kotlin实际上会生成其他构造函数。在您的情况下,您有3个arg构造函数,其中所有都是可选的,总共生成4个构造函数。 Kotlin显然还将主构造函数上的所有注释也与所有生成的注释相关联,这意味着您最终得到了4个构造函数。

您有两个选择:

第一个,正如您自己提到的,删除所有默认值。如果没有默认值,则仅使用注释生成一个构造函数。

或者,您也可以自己创建其他构造函数并将其指向主构造函数。这也可以让您手动指定仅一个具有@Inject注释,而其他人则没有。