gpt4 book ai didi

java - Dagger 2在提供方法中使用命名注释

转载 作者:行者123 更新时间:2023-12-03 13:29:41 24 4
gpt4 key购买 nike

我在我的项目中使用了 dagger 2 库。我想使用 @Named 注释来拥有两种不同类型的 REST 适配器。

@Provides
@Singleton
@Named("adapter1")
@SuppressWarnings("unused")
RestAdapter provideRestAdapter1() {
return ....;
}

@Provides
@Singleton
@Named("adapter2")
RestAdapter provideRestAdapter2() {
return ....;
}

是否可以在 provide 方法中使用 @Named 注解来让 Dagger 自己注入(inject)适当的 REST 适配器?

@Provides
@Singleton
@SuppressWarnings("unused")
Service1 provideService1(@Named("adapter1") RestAdapter restAdapter) {
return ....;
}

@Provides
@Singleton
@SuppressWarnings("unused")
Service2 provideService2(@Named("adapter2") RestAdapter restAdapter) {
return ....;
}

最佳答案

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

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

关于java - Dagger 2在提供方法中使用命名注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33096044/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com