gpt4 book ai didi

android - 如何在kodein中使用带有两个参数的工厂绑定(bind)来恢复对象?

转载 作者:行者123 更新时间:2023-12-02 12:58:37 26 4
gpt4 key购买 nike

我调用了一个 ViewModel,它在其构造函数中获取三个参数:

class DetailViewModel(
private val id: Long,
private val tipo: String,
private val msRepository: MSRepository) : ViewModel() {
val establishmentProfessional by lazyDeferred {
msRepository.getEstablishment(id, tipo)
}
}

我创建了一个工厂来构建对象 com DI:
class DetailViewModelFactory(
private val id: Long,
private val tipo: String,
private val msRepository: MSRepository
) : ViewModelProvider.NewInstanceFactory() {

@Suppress("UNCHECKED_CAST")
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
return DetailViewModelFactory(id, tipo, msRepository) as T
}
}

我编写了工厂绑定(bind)如下: bind() from factory { id: Long, entity: String -> DetailViewModelFactory(id, entity, instance()) } ,后者是先前报道的。

但是,当我尝试检索对象时,我无法正确拼写代码:
private var viewModelFactory: ( (Long, String) -> DetailViewModelFactory) by factory()

如何使用一系列参数正确检索对象?

我没有在文档中找到如何做,因为信息不足。 Retrieval Direct ,
multiple argumentes ,
Little documentation on multi-argument factories ,
How can I use Kodein's direct retrieval to fetch a dependency bound as a factory?

最佳答案

如果要检索工厂而不是实例,请使用 by factory2() .

如果要检索实例,请使用 by instance(arg = M(42L, "whatever")) .

关于android - 如何在kodein中使用带有两个参数的工厂绑定(bind)来恢复对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56435081/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com