我将我的应用从Dagger1.0转换为Dagger2.0,并且有一个应用程序组件,其中包含许多
使用Dagger 1.0时,我只需要执行
为什么我不能只有一个方法的组件:
供参考: 目前的组件:
void inject(Activity/Fragment/Receiver/etc object)
方法。使用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);
}
objectGraph.inject(anyObject)
或者使用任何类调用get(clazz)
:<T> T get(Class<T> clazz)
。 - Prem