Size: a a a

2020 April 16

АЕ

Алексей Ершов in Dagger 2
Александр
Алексей Ершев, скажите что значит разница "в контракте"? Provider scope точно кеширует тоже
Посмотрите внимательно документацию к этим интерфейсам.
https://docs.oracle.com/javaee/7/api/javax/inject/Provider.html
https://dagger.dev/api/2.11/dagger/Lazy.html
Провайдер  обещает только одно: по вызову метода get вернуть какое-то значение заданного типа.
Lazy - явно указывает, что значение будет вычисленно лениво. То есть, при первом вызове get, и явно же указывает, что все последующие вызовы get должны вернуть то же самое значение.
источник

АЕ

Алексей Ершов in Dagger 2
у Lazy более сильный контракт. Провайдер может себя вести как Lazy, как вы говорите, когда он возвращает какой-то локальный для текущего скоупа синглтон. Но в другой ситуации может и по-другому, например возвращать каждый раз новый инстанс, потому что в интерфейсе это не зафиксированно
источник

А

Александр in Dagger 2
Алексей, спасибо что нашли время на ответ. Буду разбираться. Спасибо
источник

M

Marsultanius in Dagger 2
источник

M

Marsultanius in Dagger 2
Можете помочь?
источник

HV

Harry Vorobyninov in Dagger 2
Попробуй перестроить проект!
Или отчистить кэш и перестроить
источник

HV

Harry Vorobyninov in Dagger 2
Иногда такое бывает если была исколькована буква не на том языке
ХЗ есть ли такое в андроид студии
Я бы переназвал проект заново

(ИСПРАВИЛ, не проект а сам файл экрана)
источник

M

Marsultanius in Dagger 2
Оккк
источник

M

Marsultanius in Dagger 2
Ща попробую
источник

M

Marsultanius in Dagger 2
Спасибочки
источник

HV

Harry Vorobyninov in Dagger 2
(что я имею в виду про букву)
а - это я на русском
а - это на английском
а буквы то разные
источник

HV

Harry Vorobyninov in Dagger 2
источник

M

Marsultanius in Dagger 2
Harry Vorobyninov
Попробуй перестроить проект!
Или отчистить кэш и перестроить
Помогло
источник

M

Marsultanius in Dagger 2
Спасибо
источник

M

Marsultanius in Dagger 2
А то только что не делал
источник

HV

Harry Vorobyninov in Dagger 2
Ув.
Кто подскажет.
Какая логика вообще у Dagger
Если у меня есть @Inject ClassType

есть два модуля
@Component(modules = [Module1::class,Module2::class])

в которых есть свои @Provides которые возвращают разные ClassType объекты. Как явно указать какой я хочу. Или как понять по какой логике выбирается модуль?
источник

DT

D T in Dagger 2
Harry Vorobyninov
Ув.
Кто подскажет.
Какая логика вообще у Dagger
Если у меня есть @Inject ClassType

есть два модуля
@Component(modules = [Module1::class,Module2::class])

в которых есть свои @Provides которые возвращают разные ClassType объекты. Как явно указать какой я хочу. Или как понять по какой логике выбирается модуль?
Возможно вам нужна @Named
источник

HV

Harry Vorobyninov in Dagger 2
D T
Возможно вам нужна @Named
Спасибо. Верно. И да ругнется  [Dagger/DuplicateBindings]
источник
2020 April 17

А

Александр in Dagger 2
Алексей Ершов, добрый день! Я тут раскопал отличие lazy<T>  от provider<T> в том что в лэйзи есть синглетон дабл чек, а в провайдер этого нет. О чем нам это говорит?
источник

АЕ

Алексей Ершов in Dagger 2
Александр
Алексей Ершов, добрый день! Я тут раскопал отличие lazy<T>  от provider<T> в том что в лэйзи есть синглетон дабл чек, а в провайдер этого нет. О чем нам это говорит?
Я не понял вопрос) это говорит о том, что он где-то есть а где-то нет)
источник