从Guice中的MapBinder获取实现

时间:2015-06-05 15:54:06

标签: java guice

基本上我想了解MapBinder的工作原理。我试图搜索一些例子,但找不到一个让我满意的人。在我的问题之前,这是我的一些设置。

public class MyModule extends AbstractModule {

  @Override
  protected void configure() {
    MapBinder<String, MyInterface> binder = MapBinder.newMapBinder(.....);
    binder.addBinding("one", One.class);
    binder.addBinding("two", Two.class);
  }

}

public class EntryPoint {
  @Inject
  Map<String, MyInterface> myMap;

  public void start() {
    Injector injector = Guice.createInjector(new MyModule());
    Two two = myMap.get("two");
    //Use two here.
  }
}

如何将绑定注入myMap?我觉得我没有正确使用它。

1 个答案:

答案 0 :(得分:2)

您不能将EntryPoint注入任何地方。你想做什么

EntryPoint ep = injector.getInstance(EntryPoint.class);

或者如果它不起作用,

injector.injectMembers(this);

来自EntryPoint