我正试图使用guice将一个映射注入到一个类中,其中该映射具有
Map<MyInterface, Integer>
.
我想用
MapBinder
扩展以完成此操作,但似乎MapBinder需要键的实例化对象。我想让guice注入键的实例化,因为它们是需要自己注入的复杂对象。例如:
MapBinder<MyInterface, Integer> mapBinder =
MapBinder.newMapBinder(binder(), MyInterface.class, Integer.class);
mapBinder.addBinding(MyInterfaceImpl1.class).to(5);
mapBinder.addBinding(MyInterfaceImpl2.class).to(6);
但这是非法的,因为addbinding需要类的实例。
我知道我可以切换地图中对象的顺序,但是整数值不是唯一的,所以最后我会得到一个integer->列表的地图,这很难看。有人有什么想法吗?