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