如何在数据类参数没有默认值的情况下使用匕首在 android 中注入数据类?



我的数据类像:

data class Animal(var id:Int = 2)  {
}

模块类中的 My Provision 方法,如下所示:

@Provides
@Singleton
fun provide(): Animal {
return Animal()
}

我想避免数据类参数中的默认值。

根据文档,在使用数据类主构造函数时,必须至少传递一个参数。 从类中删除数据,删除数据后不需要将至少单个参数传递给构造函数。希望这对你有帮助。

class Animal()  {
var id:Int = 2
} 

@Provides
@Singleton
fun provide(): Animal {
return Animal()
}

只需保持字段可为空并将它们分配为空即可。

类:

data class Animal @Inject constructor(
var id: Int? = null
) { }

模块:

@Provides
fun providesAnima(): Animal = Animal()

要避免数据类参数中的默认值,您必须将其设置为可选。在 kotlin 中要使可选,您必须使用 ?与参数。

data class Animal(var id:Int?=null)  {
}

最新更新