gpt4 book ai didi

java - 如何在 Dagger 中为 map 创建值

转载 作者:塔克拉玛干 更新时间:2023-11-01 23:05:31 25 4
gpt4 key购买 nike

在我的 nano 项目中,我决定用命令映射替换大而讨厌的 switch 语句。现在我正在整理我的代码,我想创建为我提供填充 map 的提供程序。

我想知道,什么是最佳实践。最初我在想这样的事情:

@Provides 
ActionResolver provideActionResolver(Dependency dep1,Dependency dep2) {
Map<SomeEnum,Action> map = new HashMap<>();
map.put(SomeEnum.A1,new Action1(dep1);
map.put(SomeEnum.A2,new Action2(dep2);
return new ActionResolver(map);
}

我想知道这样做是否正确,最佳做法是什么。

最佳答案

Map Multibindings ,如果我是正确的,您可以执行以下操作:

@MapKey
@interface SomeEnumKey {
SomeEnum value();
}

@Provides
@IntoMap
@SomeEnumKey(SomeEnum.A1)
Action action1(@Named("dep1") Dependency dep1) {
return new Action1(dep1);
}

@Provides
@IntoMap
@SomeEnumKey(SomeEnum.A2)
Action action2(@Named("dep2") Dependency dep2) {
return new Action2(dep2);
}

@Provides
ActionResolver provideActionResolver(Map<SomeEnum, Action> actions) {
return new ActionResolver(actions);
}

关于java - 如何在 Dagger 中为 map 创建值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40846560/

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