在 Kotlin 属性上使用 Dagger 的@Provides注释



当从Dagger的模块显式提供服务时,我可以使用以下语法:

@Provides
fun provideService(): MyService = MyService()

但是,如果我尝试使用属性而不是函数,它不起作用:

@Provides
val myService get() = MyService()

我得到的错误是:This annotation is not applicable to target 'member property without backing field or delegate'

使用属性的方法感觉应该有效,但事实并非如此。

我的问题是是否有办法使用属性从 Dagger 模块提供服务?

这应该可以做到:

val myService: MyService 
@Provides get() = MyService()

相关内容

最新更新