📅  最后修改于: 2023-12-03 15:13:11.701000             🧑  作者: Mango
在 Kotlin 中,使用 @installIn
注解可以将依赖项注入到应用程序或组件中。
假设我们有一个 Foo
类,它取决于一个 Bar
类。
class Foo(private val bar: Bar) {
// ...
}
我们可以将 Bar
添加为依赖项:
@Module
@InstallIn(ApplicationComponent::class)
object MyModule {
@Provides
fun provideBar(): Bar {
return Bar()
}
}
然后,在我们的 Foo
类构造函数中添加 @Inject
标记,以将 Bar
作为参数注入:
class Foo @Inject constructor(private val bar: Bar) {
// ...
}
@installIn
可以添加到的组件以下是 @installIn
可以添加到的组件的完整列表:
ActivityComponent
ApplicationComponent
FragmentComponent
ServiceComponent
ViewComponent
ViewWithFragmentComponent
不要在 @Singleton
注解的模块中使用 @Reusable
。如果您尝试这样做,在注入时会出现运行时异常。
Kotlin 中的 @installIn
注解可用于将依赖项注入到应用程序和组件中。这使得创建可测试和易于维护的代码变得更加容易。