有人可以解释以下代码段:
class UserDetailsFragment: UserDetailsContract.View {
@Inject lateinit var accountHelper: AccountHelper
private lateinit var presenter: UserDetailsPresenter
@Inject
fun injected() {
presenter = UserDetailsPresenter(this, accountHelper)
}
AccountHelper似乎由以下模块提供:
@Module
class AccountModule() {
@Provides
@AccountScope
internal fun provideAccountHelper(apiClient: ApiClient): AccountHelper {
return AccountHelper(apiClient)
}
使用@Inject注释构造函数会将其添加到具有该类注释范围的依赖关系图中(此处是无作用域的)。用@Inject注释方法有什么作用?
在AccountModule的ProvideAccountHelper中:@Singleton提供了所引用的apiClient。如果有另一个ApiClient提供相同的作用域(@AccountScope),匕首会使用它吗?有没有匕首会根据我想问的范围提供依赖关系。
谢谢。