Я преобразовал свое приложение с Dagger1.0 в dagger2.0 и имею компонент приложения со многими методами void inject(Activity/Fragment/Receiver/etc object)
.Dagger2 component generic inject method
С dagger 1.0 Я просто мог бы сделать objectGraph.inject(Object object)
, но теперь у моего компонента должен быть метод для каждого отдельного класса, который получает в него зависимости.
Почему у меня просто нет компонента, который имеет один метод: <T> void inject(T t);
?
Для справки: Мой компонент прямо сейчас:
public interface AppComponent {
void inject(MyFirstActivity activity);
void inject(MySecondActivity activity);
void inject(MyFirstFragment fragment);
void inject(MySecondFragment fragment);
...
}
Компонент Я хочу:
public interface AppComponent {
<T> void inject(T object);
}
но с Dagger1, я мог бы сделать 'objectGraph.inject (anyObject)' или 'называют получить (clazz)' с любым классом: ' T ПОЛУЧИТЬ (класс clazz)' –
Prem
я должен признать, что я никогда не смотрел на dagger1 близко –
Кинжал 1 работает с отражением во время выполнения, а не с генерацией кода, поэтому у него есть вся информация, необходимая для вызова общего метода –