Pasé algún tiempo preguntándome si es posible escribir un módulo de guice que a su vez está parametrizado con tipo T y usa su parámetro de tipo para especificar enlaces.Módulo de Guice con parámetros de tipo
Como en este ejemplo (no de trabajo):
interface A<T> {}
class AImpl<T> implements A<T>{}
interface B<T> {}
class BImpl<T> implements B<T> {}
class MyModule<T> extends AbstractModule {
@Override
protected void configure() {
bind(new TypeLiteral<A<T>>(){}).to(new TypeLiteral<AImpl<T>>(){});
bind(new TypeLiteral<B<T>>(){}).to(new TypeLiteral<BImpl<T>>(){});
}
}
He intentado diferentes enfoques que pasaban tratando de pasar a T MyModule como instancia de la clase /TypeLiteral pero ninguno de ellos trabajaron. Ayuda apreciada.
Saludos, Łukasz Osipiuk
Muchas gracias - funciona como un encanto :) – losipiuk
De nada, me alegro de poder ayudar. Sabía que ya había usado este tipo de material avanzado en mi biblioteca de eventos de tripa, así que no fue muy difícil adaptar tu ejemplo de lo que había hecho en el pasado. – jfpoilpret