2
這裏使用的參數是我遇到的問題的例子:吉斯:在注射執行抽象方法
public interface IFoo { ... }
public abstract class Helper implements IFoo {
public Helper() { ... }
protected abstract X helperMethod();
}
public class Foo extends Helper {
private final String aaa;
@Inject
public Foo(String aaa) { this.aaa = aaa; }
@Override
X helperMethod() { doSomethingUsingWhatsInjected(aaa); }
}
的問題是,當我綁定的IFoo爲foo這樣的:
bind(IFoo.class).to(Foo.class).in(Singleton.class);
它看起來像helperMethod()
之前調用aaa
已被注入,因爲我看到aaa
爲null
。但是,如果我不使用類Helper
並直接在Foo
中直接插入其所有代碼,那麼guice不會很困難。
這兩種方法有什麼區別?爲什麼helperMethod()
在我們知道從哪裏獲得IFoo
的實現之前調用?我們可以使用Helper
以及注射嗎?
你完全正確。我檢查了,我*從'Helper'的構造函數中調用'helperMethod()'。當我寫下我的例子時,我錯誤地忽略了這個細節。這回答我的問題,謝謝! – apolune