【发布时间】:2021-06-09 00:10:28
【问题描述】:
如果我有接口验证器和此接口的多个实现。如何使用 Guice 注入多个实现中的任何一个?现在我知道我可以使用以下代码注入一个,但它只允许一种实现:
public class MyModule extends AbstractModule {
@Override
protected void configure() {
bind(Validator.class).to(OneOfMyValidators.class);
}
}
我想做的是:
Validator v1 = injector.getInstance(Validator1.class);
Validator v2 = injector.getInstance(Validator2.class);
有可能吗?
【问题讨论】:
-
您的示例没有注入验证器,它只是创建它们。你想在真实代码中如何区分你的 1456 实现?
-
是的。我的意思是应用程序可以有 x 个验证器。也许验证器创建者想要向验证器注入一些依赖项。因此验证器创建者可以将@inject 添加到验证器构造函数并获取所需的依赖项。