mitaichik
@mitaichik

Dagger 2: можно ли настроить ленивое создание по умолчанию?

Всем привет!

В общем, начал изучать/внедрять Dagger 2 и лохонулся: Сделал все зависимости обычными (я так понял что они создаются сразу всем модулем), а мне нужно чтоб они все создавались по требованию. Можно ли настроить чтоб Dagger работал так по умолчанию? А то переделывать сотню мест придется...

Заранее спасибо!
  • Вопрос задан
  • 128 просмотров
Решения вопроса 1
mitaichik
@mitaichik Автор вопроса
В общем, я все не правильно понял:

Dagger создает зависимости по требованию (чего я и хотел). Ленивая зависть нужна уже тогда, когда зависимость нужно внедрить без ее создания.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@alaershov
Android-developer
Это невозможно с точки зрения самого языка. Если у вас есть поле обычного объектного типа - оно или null, если инъекция ещё не отработала, или не null, если инъекция уже сработала. Нельзя в принципе сделать так, чтобы поле было не null, и лениво инициализировалось при первом к нему обращении.
То есть, ответ на ваш вопрос - "нельзя". И Dagger тут ни при чём :)
Возникает другой вопрос: а вам точно нужно, чтобы они все создавались по требованию? Вы ощущаете заметную просадку производительности при инициализации графа объектов? В чём реально проблема неленивой инициализации?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы