dagger 2在方法

时间:2015-10-13 06:56:26

标签: java dependency-injection dagger-2

我在我的项目中使用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 ....;
}

1 个答案:

答案 0 :(得分:0)

如果您的模块包含上述所有四种方法,则应该有效:Service1将使用RestAdapter返回的provideRestAdapter1()

或者你在问你是否可以跳过前两种方法,让Dagger以某种方式知道如何提供@Named("adapter1") RestAdapter本身?这是不可能的。