3
Guice提供了查找给定类型的所有绑定(Injector#findBindingsByType)的方法,它还提供了一个TypeLiteral class,从中可以构建通配符类型。我想要做的是找到所有通过通配符类型参数化的类型的绑定,但我无法弄清楚如何去做。一看吉斯SRC暗示我可能会找错了树,但我想我会问问周围反正...所以例如给出一种类型,Guice SPI:通过通配符类型查找绑定
Foo<E extends Bar>
BarImplOne implements Bar
BarImplTwo implements Bar
和一些绑定像
bind(new TypeLiteral<Foo<BarImplOne>>() {}).to(MyFooOne.class);
bind(new TypeLiteral<Foo<BarImplTwo>>() {}).to(MyFooTwo.class);
那么我希望能够与像
Injector.findBindingsByType(TypeLiteral.get(Types.newParameterizedType(Foo.class, Types.subtypeOf(Bar.class))));
任何想法都发现绑定?
干杯 马特
感谢您的指针,我有一个非常简单的版本(基于上述)工作,适合我的直接需求,但我会尝试做一个更一般的情况下,处理一些更多的情况,并将其张贴到列表。 – Matt 2009-07-10 23:31:24