Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Guice中绑定HashMap实例_Java_Guice - Fatal编程技术网

Java 在Guice中绑定HashMap实例

Java 在Guice中绑定HashMap实例,java,guice,Java,Guice,我有一个返回映射的方法: private Map<String, Catalog> readCatalogFromXml(String xmlFile) { // blah blah read XML via DOM } 但是,我需要将该调用的结果绑定到一个实例,以便注入到多个类中。我一直在看MapBinder的文档,但我很困惑。我可能错过了一些简单的事情,有人能帮忙吗 Jason只需在模块类中实现一个提供程序: public class ModuleImpl extend

我有一个返回映射的方法:

private Map<String, Catalog> readCatalogFromXml(String xmlFile) {
    // blah blah read XML via DOM
}
但是,我需要将该调用的结果绑定到一个实例,以便注入到多个类中。我一直在看MapBinder的文档,但我很困惑。我可能错过了一些简单的事情,有人能帮忙吗


Jason

只需在模块类中实现一个提供程序:

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);
    }
}

如果你只需要注射返回的地图,我会

定义一个子类@Singleton公共类MyInjectedMap扩展HashMap{} 绑定提供程序以生成实例
在文档中搜索提供程序方法以获取更多此类示例。如果需要,提供程序方法可以使用@Singleton注释。@Darren谢谢,我只是个Guice新手,所以不知道Singleton注释。我要补充一点。晚会晚了,我们怎样才能提供渴望单身的Map?