這個問題大概是這樣的一個 Pass parameter to constructor with Guice如何通過Roboguice中的構造函數注入參數? [機器人]
差的精確複製是,我使用roboguice爲Android,而不僅僅是吉斯,所以答案有沒有爲我工作。
問題是 - 我如何將初始化參數傳遞到創建的對象?即我注入了一些界面,它應該用一些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
創建
是不是這樣:https://github.com/emmby/roboguice/wiki/CustomBinding並在參數前添加註解@Inject? –
@Eugen Martynov我認爲不行,因爲我無法在Provider.get方法中傳遞任何我想要的參數。 –
從來沒有嘗試注入參數,但當我標記構造函數需要使用@Inject註釋的上下文它正確地實例化 –