我在我的项目中使用dagger 2库。我想使用@Named注释来拥有两种不同类型的REST适配器。
@Provides
@Singleton
@Named("adapter1")
@SuppressWarnings("unused")
RestAdapter provideRestAdapter1() {
return ....;
}
@Provides
@Singleton
@Named("adapter2")
RestAdapter provideRestAdapter2() {
return ....;
}
是否有可能在内部使用@Named注释提供方法来匕首自己注入适当的REST适配器?
@Provides
@Singleton
@SuppressWarnings("unused")
Service1 provideService1(@Named("adapter1") RestAdapter restAdapter) {
return ....;
}
@Provides
@Singleton
@SuppressWarnings("unused")
Service2 provideService2(@Named("adapter2") RestAdapter restAdapter) {
return ....;
}
答案 0 :(得分:0)
如果您的模块包含上述所有四种方法,则应该有效:Service1
将使用RestAdapter
返回的provideRestAdapter1()
。
或者你在问你是否可以跳过前两种方法,让Dagger以某种方式知道如何提供@Named("adapter1") RestAdapter
本身?这是不可能的。