Variable mit benutzerdefiniertem Parameter injizieren, ohne 2 Guice-Helfer-Interfaces zu erstellen?

Ich benutze Guice, um Klassen in meinen Konstruktoren dynamisch einzufügen. Zum Beispiel:

@Inject
public PublisherFrame(EventBus eventBus, MyPublisherService publishService)

Und in meinem Guice-Modul:

bind(EventBus.class).in(Singleton.class);
bind(MyPublisherService.class).in(Singleton.class);

Funktioniert ohne Probleme.

Das Problem beginnt, wenn ich ein Objekt erstelle, das einen Parameter hat, der in Java-Code erstellt wird:

public LoginController(EventBus eventBus, MyPublisherService publisherService, LoginDialog dlg)

Hier ist LoginDialog eine Java-Klasse, die von Java-Codes erstellt wird. Um dies zu lösen, benutze ich @assist und:

install(new FactoryModuleBuilder().implement(ILoginController.class, LoginController.class).build(GuiceLoginControllerFactory.class));

Funktioniert auch gut. Aber jetzt muss ich 2 zusätzliche Java-Dateien erstellen:

eine neue Schnittstelle für LoginController: ILoginController, die nichts anderes tut als Hilfe.eine andere Schnittstelle für Guice: GuiceLoginControllerFactory

Gibt es eine einfachere Möglichkeit, eine Variable mit einem benutzerdefinierten Parameter in den Konstruktor einzufügen? (ohne 2 zusätzliche "guice" -Hilfedateien zu erstellen)

Antworten auf die Frage(1)

Ihre Antwort auf die Frage