You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现Koin依赖注入的可选参数?附可行方案

Koin依赖注入实现可选参数的可行方案

网上没找到合适的解决方案,这里分享一个可行的实现方式。要在Koin中实现依赖注入的可选参数,可使用以下代码:

val someModule: Module = module {
    factory<SomeClass> { (type: SomeEnum) ->
        when(type) {
            SomeEnum.A -> SomeClass(SomeEnum.A)
            SomeEnum.B -> SomeClass(SomeEnum.B)
            else -> SomeClass(SomeEnum.Default)
        }
    }
    factory<SomeClass> { SomeClass(SomeEnum.Default) }
}

注意:factory的顺序至关重要,若将无参数的factory放在带参数的factory上方,将无法生效

该方案可通过以下两种方式使用:

class SomeViewModel(someClass: SomeClass)

// ...
    
// 使用默认参数的实例
factory { SomeViewModel(get()) }
// 使用指定参数的实例
factory { SomeViewModel(get(parameters = { SomeEnum.A })) }

内容的提问来源于stack exchange,提问作者TNT

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.01 15:17:30