【发布时间】:2021-05-31 15:26:34
【问题描述】:
如何注入抽象类 我有一个抽象类
abstract class FactoryMediator : xx, yy,zz {}
我正在尝试使用@Module 和@Binds 注释为此类启动对象。但是这样创建失败并抛出错误。
@Module
@InstallIn(SingletonComponent::class)
abstract class PolicyModule {
@Binds
abstract fun bindFactoryMediator(factoryMediator: FactoryMediator): PolicyFactoryMediator
}
但这会出错。我犯了什么错误?请让我知道如何为抽象类创建。我们如何注入抽象类? 从文档中,它说。 有时一个类型不能被构造函数注入。这可能有多种原因。例如,您不能构造函数注入接口。您也不能构造函数注入您不拥有的类型,例如来自外部库的类。在这些情况下,您可以使用 Hilt 模块为 Hilt 提供绑定信息。
Hilt 模块是一个带有@Module 注释的类。像 Dagger 模块一样,它通知 Hilt 如何提供某些类型的实例。与 Dagger 模块不同,您必须使用 @InstallIn 注释 Hilt 模块,以告诉 Hilt 每个模块将被使用或安装在哪个 Android 类中。
【问题讨论】:
标签: android kotlin dependency-injection dagger-hilt