android - 在 Kotlin 属性中使用 Dagger @Provides 注解

标签 android kotlin dagger-2

当显式地从 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()

关于android - 在 Kotlin 属性中使用 Dagger @Provides 注解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62534288/

相关文章:

c# - 我可以使用什么技术为我的 C# 应用程序编写一个 View ?

android - Linkify调用java代码

kotlin - Any? 之间的联合类型和单位

android - 滚动时 RecyclerView 项目大小发生变化

java - Dagger2 - 项目重建错误 - 字段注入(inject) - Android

kotlin - 注入(inject)不适用于第二个构造函数

Android 相机预览颜色问题(红色和蓝色交换)

Android谷歌地图应用程序通过 Intent 从一个 Activity 调用崩溃

kotlin - 建议将 `equals` 更改为 `==` 不能应用于 Char 和 String?

kotlin - 我可以在 Kotlin 中使用 Dagger 2 的场注入(inject)吗?