что делает инъекция метода в кинжале? - PullRequest
0 голосов
/ 24 февраля 2019

Может ли кто-нибудь объяснить следующий фрагмент кода:

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)
  }
  1. Аннотирование конструктора с помощью@Inject добавляет его в граф зависимостей с областью, к которой аннотирован класс (здесь он не ограничен).Что делает аннотирование метода с помощью @Inject?

  2. В provideAccountHelper AccountModule: на указанный apiClient предоставляется @Singleton.Если бы был другой ApiClient с такой же областью действия (@AccountScope), будет ли это использовать кинжал?Есть ли в приказе кинжал, обеспечивающий зависимости в зависимости от области видимости? Я думаю, это то, что я спрашиваю.

Спасибо.

...