我已经看到了关于注册泛型类型的post。
如何注册的例子:
bind(new TypeLiteral<Dal<RoutingResponse>>() {}).to((Class<? extends Dal<RoutingResponse>>) ResponseDal.class);
但是如何从进样器中获取泛型类型的实例呢?
我试过了:
injector.getInstance(Dal<RoutingResponse>().getClass());
但是出现了编译错误。
我该怎么写呢?
答案 0 :(得分:6)
您可以使用Key来获取这些绑定的实例:
injector.getInstance(new Key<Dal<RoutingResponse>>() {}); // supplied by @DanielPryden in the comments
或更长版本,TypeLiteral:
injector.getInstance(Key.get(new TypeLiteral<Dal<RoutingResponse>>() {}));