【发布时间】:2021-12-09 13:32:27
【问题描述】:
嗨,我正在尝试Google Guice 5.x。我的班级定义为:
public class Foo<T> {
// some logic here
}
它正在其他类中使用,例如:
public class Bar {
private final Foo<Chocolate> provider;
public Bar(Foo<Chocolate> _choco) {
this.provider = _choco;
}
}
public abstract class BaseZoo { // in some other package in a different jar
private final Injector injector = Guice.createInjector(new MyAppModule());
private Foo<?> provider;
public String doSomething() {
if (provider == null)
this.provider = this.injector.getInstance(Foo.class);
// some other code logic.
}
}
现在,在我的模块文件中 (MyAppModule) 我将 Foo 定义为:
@Inject
@Provides
@Singleton
public Foo<Chocolate> getFoo(FooDependency fooDep) {
return new Foo<>(fooDep);
}
现在,当我运行我的代码时,Google Guice 能够找到 Foo<Chocolate> 的实例,但无法找到 Foo<?> 的实例。
有没有办法配置 Google Guice 以使用 Foo<Chocolate> 的实例解析 Foo<?>?
【问题讨论】: