作为一个使用Guice的用户,我想要了解一下Dagger的优点。以下是我的问题:
假设我有以下代码:
MyActivity.java
---------------
public class MyActivity {
@Inject MyImplicitClass myImplicitClass;
@Inject @Named("foo") MyExplicitClass myNamedExplicitClass;
...
}
MyImplicitClass.java
------------
public class MyImplicitClass {
@Inject
MyImplicitClass(MyExplicitClass myExplicitClass) {
...
}
...
}
MyModule.java
---------------
@Module(injects = { ? }) {
@Provides provideExplicitClass() {
return new MyExplicitClass();
}
@Named("foo") @Provides provideNamedExplicitClass() {
return new MyExplicitClass();
}
}
那么,我的问题是,在Injects中应该放什么?
我知道MyActivity需要加入。或者说,无论什么“this”,都需要DaggerInjector.inject(this)
还需要加入其他东西吗? 需要为Dagger构造注入类(MyImplicitClass)和/或在模块中明确提供的类(MyExplicitClass)进行指定吗?
如果我需要对MyExplicitClass进行注释,这对它甚至没有意义。
然而,Javadoc让我觉得应该包容错误。 http://square.github.io/dagger/javadoc/dagger/Module.html#injects()