Injetar variável com parâmetro personalizado sem criar duas interfaces auxiliares de mapeamento?
Eu estou usando o guice para injetar dinamicamente classes em meus construtores. Por exemplo:
@Inject
public PublisherFrame(EventBus eventBus, MyPublisherService publishService)
E no meu módulo de guice:
bind(EventBus.class).in(Singleton.class);
bind(MyPublisherService.class).in(Singleton.class);
Funciona sem problemas.
O problema começa quando eu crio um objeto que possui um parâmetro que é construído no código java:
public LoginController(EventBus eventBus, MyPublisherService publisherService, LoginDialog dlg)
Aqui LoginDialog é uma classe java que os códigos java criam. Para resolver isso eu uso o @assist e:
install(new FactoryModuleBuilder().implement(ILoginController.class, LoginController.class).build(GuiceLoginControllerFactory.class));
Funciona também bem. Mas agora eu tenho que criar dois arquivos java extras:
uma nova interface para o LoginController: o ILoginController, que não faz nada exceto ajuda.outra interface para o guice: GuiceLoginControllerFactoryExiste uma maneira mais fácil de injetar uma variável que tenha um parâmetro personalizado no construtor? (sem criar 2 arquivos auxiliares "guice" extras)