2
我想注入Provider<T>
的提供者,在這樣的事情:如何注入使用吉斯
class Work {
Provider<Tool> provider;
@Inject
Work (Provider<Tool> provider) { this.provider = provider; }
}
我Module
看起來是這樣的:
protected void configure() {
bind (Tool.class).to(MyTool.class);
// Q: How do I bind this:
bind (new TypeLiteral<Provider<Tool>> {}).to (????);
// A: Turns out deleting these last 3 lines makes everything just right.
}
我想注入Provider<T>
因爲Work
類需要創建更多Tool
對象並與它們一起工作。另外,我不確定是否需要對TypeLiteral<Provider<Tool>>
進行綁定,但我認爲這是最接近這種情況的方法。
你說得對,我還沒見過那部分(現在我覺得沒有RTFM很愚蠢)。我可以確認它的工作原理;)。謝謝 –
Jon Skeet的權利。另一種方法是,綁定一個類創建一個Guice內部的默認提供者,它將被注入到該類提供者的任何請求中。 – dlamblin