injector.getInstance 属于泛型
injector.getInstance of a generic type
我看过这个post关于注册泛型类型。
关于如何注册的示例:
bind(new TypeLiteral<Dal<RoutingResponse>>() {}).to((Class<? extends Dal<RoutingResponse>>) ResponseDal.class);
但是如何从注入器中获取泛型实例?
我试过:
injector.getInstance(Dal<RoutingResponse>().getClass());
但是出现编译错误。
这个应该怎么写?
您可以使用 Key 获取这些绑定的实例:
injector.getInstance(new Key<Dal<RoutingResponse>>() {}); // supplied by @DanielPryden in the comments
或更长的版本,带有 TypeLiteral:
injector.getInstance(Key.get(new TypeLiteral<Dal<RoutingResponse>>() {}));
我看过这个post关于注册泛型类型。
关于如何注册的示例:
bind(new TypeLiteral<Dal<RoutingResponse>>() {}).to((Class<? extends Dal<RoutingResponse>>) ResponseDal.class);
但是如何从注入器中获取泛型实例?
我试过:
injector.getInstance(Dal<RoutingResponse>().getClass());
但是出现编译错误。
这个应该怎么写?
您可以使用 Key 获取这些绑定的实例:
injector.getInstance(new Key<Dal<RoutingResponse>>() {}); // supplied by @DanielPryden in the comments
或更长的版本,带有 TypeLiteral:
injector.getInstance(Key.get(new TypeLiteral<Dal<RoutingResponse>>() {}));