gpt4 book ai didi

java - 如何使用 Guice 注入(inject) Provider

转载 作者:行者123 更新时间:2023-12-04 06:13:20 25 4
gpt4 key购买 nike

我想注入(inject)一个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.
}

我想注入(inject)一个Provider<T>因为Work类需要创建更多Tool对象并使用它们。另外,我不确定是否真的需要绑定(bind) TypeLiteral<Provider<Tool>>但我认为这是最接近这种情况的方法。

最佳答案

你试过不绑定(bind)它吗?我期望 Guice 为您构建一个每次都解析非提供者绑定(bind)的提供者。

来自 "Injecting Providers" :

For every binding, annotated or not, the injector has a built-in binding for its provider.

所以我认为只需绑定(bind) Tool 就足够了。至少值得一试 :)(我希望听起来更自信,但我没有我想要的那么多 Guice-fu...)

关于java - 如何使用 Guice 注入(inject) Provider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7525798/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com