Guice fournit un moyen de trouver toutes les liaisons pour un type donné (Injector#findBindingsByType) et fournit également un TypeLiteral class à partir duquel il semble possible de construire un type générique. Ce que je voudrais faire est de trouver toutes les liaisons pour un type qui est paramétré par un type générique mais je n'arrive pas à comprendre comment le faire. Un regard sur le src Guice suggère que je pourrais aboyer le mauvais arbre, mais je me suis dit que je demande autour de toute façon ... Ainsi, par exemple donné un typeGuice SPI: recherche des liaisons par types génériques
Foo<E extends Bar>
BarImplOne implements Bar
BarImplTwo implements Bar
et quelques liaisons comme
bind(new TypeLiteral<Foo<BarImplOne>>() {}).to(MyFooOne.class);
bind(new TypeLiteral<Foo<BarImplTwo>>() {}).to(MyFooTwo.class);
alors je veux être en mesure de découvrir à la fois des liaisons avec quelque chose comme
Injector.findBindingsByType(TypeLiteral.get(Types.newParameterizedType(Foo.class, Types.subtypeOf(Bar.class))));
Toutes les idées?
Vive Matt
merci pour le pointeur, j'ai une version assez simple (basée sur ce qui précède) fonctionnant qui correspond à mes besoins immédiats mais je vais essayer de faire un cas plus général qui traite de quelques autres situations et le poster à la liste . – Matt