一般类型的injector.getInstance

时间:2015-02-16 22:13:23

标签: java class generics dependency-injection guice

我已经看到了关于注册泛型类型的post

如何注册的例子:

 bind(new TypeLiteral<Dal<RoutingResponse>>() {}).to((Class<? extends Dal<RoutingResponse>>) ResponseDal.class);

但是如何从进样器中获取泛型类型的实例呢?

我试过了:

injector.getInstance(Dal<RoutingResponse>().getClass());

但是出现了编译错误。

我该怎么写呢?

1 个答案:

答案 0 :(得分:6)

您可以使用Key来获取这些绑定的实例:

injector.getInstance(new Key<Dal<RoutingResponse>>() {}); // supplied by @DanielPryden in the comments

或更长版本,TypeLiteral

injector.getInstance(Key.get(new TypeLiteral<Dal<RoutingResponse>>() {}));