这个问题可能是这个 Pass parameter to constructor with Guice的完全重复
不同之处在于我将 roboguice 用于 android,而不仅仅是 Guice,所以那里的答案对我不起作用。
问题是 - 如何将初始化参数传递给创建的对象?即我已经注入了应该使用roboguice 不知道的一些参数来初始化的接口。
我在我提供的链接中看到的,我应该创建工厂接口并像这样注册它
void configure(Binder binder) {
binder.install(new FactoryModuleBuilder()
.implement(FooInterface.class, Foo.class)
.build(FooFactory.class));
}
但我找不到FactoryModuleBuilder类。我使用 Intellij IDEA,它可以显示我可以在当前位置访问的每个类,并且我可以 100% 确定没有以“工厂”字样开头的类。
如何使用 roboguice 创建我的工厂?
更新
我忘了下载guice-assistedinject。但是我仍然不知道我应该在哪里注册这家工厂。
更新 2
为什么我需要那个?因为应该存在某些抽象具有依赖关系的情况,而 Roboguice 无法解决。这种依赖可以是任何类型,甚至是简单的字符串或数字。
就我而言,我在 UI 上有 NumberPicker 控件,我想在MyNumberPickerWrapper类中移动所有 UI 特定任务。当我创建这个包装器时,我通过构造函数注入它的依赖项(这个控件)。
如果我对这种方法的看法是正确的,这不是重点,但可能还有很多其他更适用的示例,其中需要构造函数注入并且 Roboguice 无法创建注入的类