我將我的應用程序從Dagger1.0轉換爲dagger2.0,並擁有一個包含許多void inject(Activity/Fragment/Receiver/etc object)
方法的應用程序組件。Dagger2組件通用注入方法
隨着匕首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所)'任何類:'噸得到(類 clazz所)' –
Prem
我不得不承認,我從來沒有看過dagger1接近 –
Dagger 1在運行時使用反射,而不是代碼生成,因此它具有調用泛型方法所需的所有信息 –