Как объединить модули без конструктора no-args. У меня есть библиотека, содержащая несколько модулей, которые я хочу повторно использовать в своих приложениях. Однако для этих модулей требуются некоторые параметры. Следующий пример описывает мои настройки:Android Dagger - Модули без конструктора no-args
Библиотека:
@Module(
library = true
)
public class LibModule1 {
private final String mString;
public LibModule1(String string) {
mString = string;
}
//... provide methods
}
@Module(
library = true,
addsTo = LibraryModule1.class
)
public class LibModule2 {
private final String mString;
public LibModule2(String string) {
mString = string;
}
//... provide methods
}
Обратите внимание, что LibModule2 зависит от некоторых обеспеченных объектов от LibModule1.
Приложение: В моем приложении я вставляю объекты из LibModule1 и LibModule2 в один класс. Но я не знаю, как я могу объединить эти модули. Параметр включает в себя параметр, который не работает, поскольку оба модуля не имеют конструктора no-args. addedTo не работает, потому что мне нужны оба библиотечных модуля, но параметр позволяет мне устанавливать только один класс. Создание двух модулей приложения, вводящих мой класс MyClass.class не работает (класс может быть введен только одним модулем, правильно ?!).
@Module(
injects = MyClass.class
)
public class AppModule {
}
Как я могу решить эту проблему?
Большое спасибо за подробное разъяснение. Я не нашел отличия от «include» и «addTo» в документации. Пожалуйста, исправьте меня, если я ошибаюсь: «addTo» следует использовать только, если вы вызываете .plus() на другой ObjectGraph. Например. это используется для объекта ObjectGraph с областью действия. Там вы вызываете plus() на Application ObjectGraph. Таким образом, модуль Activity использует «addTo». – vRallev
Да. Мне нужно поднять некоторые документы по этим двум, хотя я надеялся получить аннотации пользовательских областей и затем догнать документы. :/ –
Общая сторона примечания, если мы не ошибаемся в нашем подходе, Dagger 2.0 не нуждается в addTo и будет иметь совершенно другой механизм, который превосходит, но мы немного отстаем от этого. –