Java dagger 2在提供方法中使用命名注释

Java dagger 2在提供方法中使用命名注释,java,dependency-injection,dagger-2,Java,Dependency Injection,Dagger 2,我在我的项目中使用Dagger2库。我想使用@Named注释来拥有两种不同类型的REST适配器 @Provides @Singleton @Named("adapter1") @SuppressWarnings("unused") RestAdapter provideRestAdapter1() { return ....; } @Provides @Singleton @Named("adapter2") RestAdapter provideRestAdapter2() { re

我在我的项目中使用Dagger2库。我想使用@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 ....;
}

如果您的模块包含上述所有四种方法,那么它应该可以工作:
Service1
将使用
providerstatadapter1()
返回的
RestAdapter


或者,您想知道是否可以跳过前两种方法,让Dagger知道如何提供
@Named(“adapter1”)restapter
本身?这是不可能的。

你能在
providedevice1()中调用
providedestadapter1()