Я вызвал 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
}
}
Я написал привязку Factoryследующим образом: bind() from factory { id: Long, entity: String -> DetailViewModelFactory(id, entity, instance()) }
, о последнем сообщалось ранее.
Однако, когда я пытаюсь получить объект, я не могу правильно написать код:
private var viewModelFactory: ( (Long, String) -> DetailViewModelFactory) by factory()
Как получитьобъект правильно с серией аргументов?
Я не нашел в документации, как это сделать, потому что информации недостаточно. Прямое получение , несколько аргументов , Небольшая документация по фабрикам с несколькими аргументами , Как я могу использовать прямой поиск Кодейна для получения зависимости, привязанной как фабрика?