繁体   English   中英

在Guice中绑定HashMap实例

[英]Binding A HashMap Instance In Guice

我有一个返回Map()的方法:

private Map<String, Catalog> readCatalogFromXml(String xmlFile) {
    // blah blah read XML via DOM
}

但是,我需要将该调用的结果绑定到单个实例,以注入到多个类中。 我一直在寻找MapBinder的文档,但感到困惑。 我可能缺少简单的东西,有人可以协助吗?

杰森

只需在Module类中实现提供程序:

public class ModuleImpl extends AbstractModule {
    @Override
    protected void configure() {
        // bind whatever needed
    }

    @Singleton
    @Provides
    Map<String, Catalog> provideMap(@XMLFile String xmlFile) {
        // create an instance of your class
        return myClass.readCatalogFromXml(xmlFile);
    }
}

如果您只需要注入返回的Map,我将...

  1. 定义一个子类“ @Singleton公共类MyInjectedMap扩展了HashMap {}”
  2. 绑定提供者<MyInjectedMap>以产生实例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM