我正在尝试通过这样的注释将
@Qualifier
@MustBeDocumented
@Retention(AnnotationRetention.RUNTIME)
annotation class ChannelId
使用构造函数注入时,一切运行良好。现在,当我实施服务时,我需要懒洋洋地注入我的ChannelId
:
@Inject
@ChannelId
lateinit var channelId: String
我的提供商如下所示:
@Provides
@ChannelId
fun channelId(): String = "channelid"
编译器告诉我,我需要为我的String实现@Provides
- 方法,尽管它在我的Object-Graph中。
我在提供程序和服务中使用@Named
对此进行了测试:
@Inject
@field:Named("channelId")
lateinit var channelId: String
Dagger现在可以解析String并将其正确地注入我的服务中。显然我错过了关于限定符 - 注释的一些东西。有人可以帮忙吗? 谢谢。