gpt4 book ai didi

java - 使用 Guice 注入(inject)类集合

转载 作者:IT老高 更新时间:2023-10-28 21:02:47 26 4
gpt4 key购买 nike

我正在尝试使用 Google Guice 2.0 注入(inject)东西,我有以下结构:

FooAction implements Action
BarAction implements Action

然后我有一个带有以下构造函数的 ActionLibrary:

ActionLibrary (List<Action> theActions)

当我从 Guice 请求 ActionLibrary 的实例时,我希望 Guice 识别两个已注册的 Action 类(FooAction、BarAction)并将它们传递给构造函数。这里的动机是当我添加第三个 Action BazAction 时,就像在 Module 中注册它一样简单,它会自动添加到构造函数中的列表中。

这可能吗?

最佳答案

你想要的是Multibindings .具体来说,你想绑定(bind)一个 Set<Action> (不是 List ,而是 Set 可能是你真正想要的)像这样:

Multibinder<Action> actionBinder = Multibinder.newSetBinder(binder(), Action.class);
actionBinder.addBinding().to(FooAction.class);
actionBinder.addBinding().to(BarAction.class);

那么你可以@Inject Set<Action>任何地方。

关于java - 使用 Guice 注入(inject)类集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4410712/

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