我有一个要注入的类,它有一个接收一个参数(上下文)的构造函数。
我通常会将它绑定到一个实例,但是这个类具有 JNI 依赖项,我无法使用 Robolectric 实例化它,这阻止了我在配置模块时测试应用程序的一部分。
我已将其设置为与类的绑定,并将目标类注释为单例,并将构造函数注释为注入,但它没有为它构造工厂。
我很乐意提供自己的工厂,但我在文档中找不到任何相关信息。
这是我进行绑定时的部分:
val module = Module()
module.bind(Interface::class.java).to(InterfaceImpl::class.java)
scope.installModules(module)
这就是我设置课程的方式:
@Singleton
class InterfaceImpl : Interface {
@Inject
constructor(applicationContext: Context) {
[...]
}
}
为了清楚起见,如果我在进行绑定时使用 toInstance ,它确实有效。
val module = Module()
module.bind(Interface::class.java).toInstance(InterfaceImpl(context))
scope.installModules(module)
如何让注入的构造函数将其绑定到类?