Hilt 将字段注入到任何没有作用域的类中

T D*_*yen 11 android dependency-injection field dagger-hilt

假设我有A类

class A ()
Run Code Online (Sandbox Code Playgroud)

我想将 的实例A作为字段注入到类中B,并让 Hilt 或 Dagger 来处理它。

Class B {

  @Inject lateinit var a: A 

}
Run Code Online (Sandbox Code Playgroud)

假设类 B 是一个普通类,没有上下文,例如视图模型或任何东西,正确的步骤是什么(如果可能),这样我就可以使用该实例而a无需手动初始化。

roo*_*est 1

如果您可以访问类 B 的构造函数,您可以作为参数传递,如下所示:

class B @Inject constructor(
    private val classA : A 
){
     //...
}
Run Code Online (Sandbox Code Playgroud)

否则你可以使用@EntryPoints. 想了解更多详情@EntryPoint,您可以点击以下链接:

https://developer.android.com/training/dependency-injection/hilt-android#not-supported