使用Guice注入Genric / Anonymous类型

时间:2016-08-04 22:13:51

标签: java binding guice

我试图用泛型参数绑定一个具体的类。 例如:

public class Concrete<T> extends GenericClass<T, Employee>{

 public Employee method(T input){
 //Do stuff
 }
}

现在我的另一个类使用了这个具体类的多个对象 例如:

public class UseConcrete{

private Concrete<Class1> concrete1;
private Concrete<Class2> concrete2;     

@Inject
publicUseConcrete(Concrete<Class1> concrete1,Concrete<Class2> concrete2){
this.concrete1 = concrete1;
this.concrete2 = concrete2;
}

}

我想知道这样的简单绑定是否有效?我想尝试这个,但只是想看看我是否走错了路。

bind(Concrete.class);

1 个答案:

答案 0 :(得分:0)

是的,只要满足其他要求(无法构造函数或test.php),echo $results就可以了。

然后您可以执行以下操作:

@Inject

或在您的示例中:

bind(Concrete.class)

根据官方文档,你也可以这样做:

A)

Concrete<String> concrete = injector.getInstance(Concrete.class);

B)

injector.getInstance(UseConcrete.class);

其中@Override public void configure() { bind(new TypeLiteral<Concrete<T>>() {}).toInstance(new Concrete<T>()); } 需要替换为您尝试绑定的实际类型。您可以阅读官方文档here