Dependency injection 在@内注入依赖项为方法提供了匕首2
我已经正确地创建了这三个依赖项我通过使用Dagger 2调试验证了它们确实存在,让我们称它们为a、b、c,如下所示:Dependency injection 在@内注入依赖项为方法提供了匕首2,dependency-injection,dagger-2,Dependency Injection,Dagger 2,我已经正确地创建了这三个依赖项我通过使用Dagger 2调试验证了它们确实存在,让我们称它们为a、b、c,如下所示: class Example { ... @Inject A a; @Inject B b; @Inject C c; ... }, 由SomeModule提供,如下所示: @Module class SomeModule { ... @Singleton @Provides A provideA(){return new
class Example {
...
@Inject A a;
@Inject B b;
@Inject C c;
...
},
由SomeModule提供,如下所示:
@Module
class SomeModule {
...
@Singleton @Provides A provideA(){return new A()};
@Singleton @Provides B provideB(){return new B()};
@Singleton @Provides C provideC(){return new C()};
...
},
这个组件相当简单:
@Component(modules = {SomeModule.class, ...})
class SomeComponent {
...
void inject(Example example);
...
},
我需要它们来创建另一个对象,我们称它们为d,e,类似这样的东西:
public Example(){
DaggerSomeComponent.builder().build().inject(this);
...
this.d = new D(c);
this.e = new E(d, a, b);
...
}
我的问题是:有可能做到这样吗
class Example {
...
@Inject A a;
@Inject B b;
@Inject C c;
@Inject D d;
@Inject E e;
...
public Example(){
DaggerSomeComponent.builder().build().inject(this);
...
}
}
对。Dagger将在调用该方法之前创建实例
@Provides D provideD(C c){return new D(c)};
@Provides E provideE(A a, B b, D d){return new E(d, a, b)};