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

Vas*_*liy 2 android kotlin dagger-2

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

@Provides
fun provideService(): MyService = MyService()
Run Code Online (Sandbox Code Playgroud)

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

@Provides
val myService get() = MyService()
Run Code Online (Sandbox Code Playgroud)

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

使用属性的方法感觉它应该起作用,但它没有。

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

Mah*_*uri 8

这应该这样做:

val myService: MyService 
    @Provides get() = MyService()
Run Code Online (Sandbox Code Playgroud)