我是新來的Guice,所以如果這是一個愚蠢的問題,但我覺得它非常令人沮喪。Guice模塊綁定對象構建與注入類
在我的模塊中,我構造了一個對象,它是我不控制的框架的成員。然後綁定該實例,以便稍後可以使用injector.getInstance(FrameworkClass.class)來訪問它;
當我構建該對象時,我想使用我自己的一個對象,它本身被註釋爲由構造函數注入。
即
public class MyClass {
OtherClass dependency;
@Inject
Public MyClass(OtherClass dependency) {
....
}
}
public class AModule extends AbstractModule {
protected void configure() {
MyClass frameworkDependency = ???
FrameworkClass fc = new FrameworkClass(frameworkDependency);
bind(FrameworkClass.class).toInstance(fc);
}
}
在這個例子中OtherClass僅僅是一個簡單的類不帶註釋的,但默認的空構造,所以吉斯應該只是新一輪上漲和它作爲我的理解提供MyClass的構造函數。
我的問題是如何訪問我的模塊中的MyClass的新實例,以便我可以將其提供給框架類?
以前我必須通過現場注射注入我自己的類,所以它看起來像這樣:
public class MyClass {
@Inject
OtherClass dependency;
}
public class AModule extends AbstractModule {
protected void configure() {
MyClass frameworkDependency = new MyClass();
requestInjection(frameworkDependency);
FrameworkClass fc = new FrameworkClass(frameworkDependency);
bind(FrameworkClass.class).toInstance(fc);
}
}
我寧願保持MyClass的,如果可能的構造函數注入。