我试图用泛型参数绑定一个具体的类。 例如:
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);
答案 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。