簡體   English   中英

遍歷Guice多活頁夾列表

[英]Iterating over Guice multibinder list

嗨,我正在嘗試在模塊中按以下方式構造列表,以后可以將其注入到任何類中並在同一模塊中使用,如下所示:

public class MyConfigModule extends AbstractModule{

@Override
protected void configure() {
    Multibinder<String> myList =
            Multibinder.newSetBinder(binder(), String.class, Names.named("MyList"));

    myList.addBinding().toInstance("Test1");

    MapBinder<String, IManager> myMap = MapBinder
            .newMapBinder(binder(), String.class, IManager.class, 
                          Names.named("ManagerMap"));

    for(each item in the above myList) <--- cannot figure out how to do this i.e. iterating over a multibinder

         myMap
            .addBinding(item).to(MyManager.class).asEagerSingleton();

   }
}

簡短而令人失望的答案是:您不能。 如果您查看Multibinder的源代碼,就會發現它只是將調用委派給RealMultibinder的實例。 不幸的是, Multibinder沒有公開任何允許您訪問RealMultibinder內部數據的RealMultibinder 即使這樣做,也無濟於事,因為RealMultibinder但是使用Binder的實現來管理綁定。 我可以繼續,但是我想你明白我的意思;)

因此,唯一的選擇(並且我真的不建議這樣做)是通過所有這些類來反映自己,直到您獲得約束綁定的數據結構。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM