Zmienna wtrysku z parametrem niestandardowym bez tworzenia 2 interfejsów pomocnika guice?
Używam guice do dynamicznego wstrzykiwania klas do moich konstruktorów. Na przykład:
@Inject
public PublisherFrame(EventBus eventBus, MyPublisherService publishService)
W moim module guice:
bind(EventBus.class).in(Singleton.class);
bind(MyPublisherService.class).in(Singleton.class);
Działa bez problemów.
Problem zaczyna się, gdy tworzę obiekt, który ma parametr skonstruowany w kodzie java:
public LoginController(EventBus eventBus, MyPublisherService publisherService, LoginDialog dlg)
Tutaj LoginDialog jest klasą java, którą tworzą kody java. Aby rozwiązać ten problem, używam @assist i:
install(new FactoryModuleBuilder().implement(ILoginController.class, LoginController.class).build(GuiceLoginControllerFactory.class));
Działa również ładnie. Ale teraz muszę utworzyć 2 dodatkowe pliki java:
nowy interfejs dla LoginController: ILoginController, który nie robi nic oprócz pomocy guice.inny interfejs Guice: GuiceLoginControllerFactoryCzy istnieje łatwiejszy sposób wstrzyknięcia zmiennej, która ma niestandardowy parametr w konstruktorze? (bez tworzenia 2 dodatkowych plików pomocniczych „guice”)