我正在使用 guice 在我的构造函数中动态注入类。例如:
@Inject
public PublisherFrame(EventBus eventBus, MyPublisherService publishService)
在我的 guice 模块中:
bind(EventBus.class).in(Singleton.class);
bind(MyPublisherService.class).in(Singleton.class);
工作没有问题。
当我创建一个具有在 java 代码中构造的参数的对象时,问题就开始了:
public LoginController(EventBus eventBus, MyPublisherService publisherService, LoginDialog dlg)
这里 LoginDialog 是 java 代码创建的 java 类。为了解决这个问题,我使用@assist 并且:
install(new FactoryModuleBuilder().implement(ILoginController.class, LoginController.class).build(GuiceLoginControllerFactory.class));
工作也很好。但现在我必须创建 2 个额外的 java 文件:
- LoginController 的新接口:ILoginController,它除了 help guice 什么都不做。
- guice 的另一个接口:GuiceLoginControllerFactory
有没有更简单的方法来注入在构造函数中具有自定义参数的变量?(不创建 2 个额外的“guice”帮助文件)