gpt4 book ai didi

java - Guice 一次获取多个实例

转载 作者:行者123 更新时间:2023-11-29 04:52:01 29 4
gpt4 key购买 nike

我是 Java 和 Guice 的新手,但我正在搜索是否可行。

例如,如果a有接口(interface)

public interface A {
}

以及它的多个实现,在 Guice 模块中将是:

@Override
protected void configure() {
bind(A.class).to(Aimpl.class);
bind(A.class).to(Bimpl.class);
}

我想要这样的东西:

A[] implementations = injector.getInstance(A.class);

所以我可以使用同一接口(interface)的所有实现!

最佳答案

您可以使用 MultiBinder :

在模块配置中:

@Override
protected void configure() {
Multibinder<A> aBinder = Multibinder.newSetBinder(binder(), A.class);
aBinder.addBinding().to(Aimpl.class);
aBinder.addBinding().to(Bimpl.class);
}

然后,您可以注入(inject)一组 A :

public class MyConsumer {

@Inject
public MyConsumer(Set<A> instances) {
}
}

参见 https://github.com/google/guice/wiki/Multibindings

关于java - Guice 一次获取多个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35118610/

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