如何在构造函数中只注入一个参数?
有这样的课程:
@AndroidEntryPoint
class CustomClass @Inject constructor (val repository: Repository, val name: String) {}
假设我只想注入存储库参数,但我想在初始化期间传递名称参数,如下所示:
val customClass = CustomClass("name")
如何做?
遵循 dagger 文档此处
你可以做的是使用@AssistedInject注释并创建一个要使用的工厂。
class CustomClass @AssisgtedInject constructor (
val repository: Repository,
@Assisted val name: String
) {
@AssistedFactory
interface CustomClassFactory {
fun create(name: String): CustomClass
}
}
然后你可以拥有@Inject CustomClassFactory并调用CustomClassFactory.create()来创建你的对象。