簡體   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