¿Inyectar variable con parámetro personalizado sin crear 2 interfaces de ayudante de guía?
Estoy usando guice para inyectar dinámicamente clases en mis constructores. Por ejemplo:
@Inject
public PublisherFrame(EventBus eventBus, MyPublisherService publishService)
Y en mi módulo guice:
bind(EventBus.class).in(Singleton.class);
bind(MyPublisherService.class).in(Singleton.class);
Funciona sin problemas.
El problema comienza cuando creo un objeto que tiene un parámetro construido en código java:
public LoginController(EventBus eventBus, MyPublisherService publisherService, LoginDialog dlg)
Aquí LoginDialog es una clase java que crean los códigos java. Para resolver esto utilizo @assist y:
install(new FactoryModuleBuilder().implement(ILoginController.class, LoginController.class).build(GuiceLoginControllerFactory.class));
Funciona también muy bien. Pero ahora tengo que crear 2 archivos java extra:
una nueva interfaz para LoginController: ILoginController, que no hace nada excepto ayudar a Guice.otra interfaz para guice: GuiceLoginControllerFactory¿Hay una forma más fácil de inyectar una variable que tenga un parámetro personalizado en el constructor? (sin crear 2 archivos de ayuda adicionales "guice")