Guice предоставляет средства для поиска всех привязок для заданного типа (Injector#findBindingsByType), а также предоставляет класс TypeLiteral, из которого представляется возможным создать подстановочный тип. Я хотел бы найти все привязки для некоторого типа, который параметризован типом подстановочного знака, но я не могу понять, как это сделать. Взгляд на guice src предполагает, что я, возможно, лаю не по тому дереву, но я решил, что все равно поспрашиваю... так, например, учитывая тип
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))));
Любые идеи?
Привет Мэтт