我有一个界面:
public interface MyInterface {...}
MyInterface 的每个实现都有自己的(不同的)依赖项。例子:
public class MyObjectOne implements MyInterface {
@Inject ServiceA ...;
...
}
public class MyObjectTwo implements MyInterface {
@Inject ManagerB ...;
@Inject ProviderC ...;
...
}
我可以有数百个 MyInterface 实现。现在我想创建一个地图如下:
Map<String, MyInterface> map = new HashMap<String, MyInterface>();
map.put("key1", new MyObjectOne());
map.put("key2", new MyObjectTwo());
...
map.put("keyn", new MyObjectN());
不幸的是,这个短路 Dagger 并不会在 MyObjectOne、MyObjectTwo、... 和 MyObjectN 中注入任何东西。此外,此时我没有 ObjectGraph,因为此代码是库/模块的一部分。
当我在寻找解决方案时,我遇到了Guice 中的MapBinder类,它似乎可以满足我的需求。Dagger 不提供此功能。
我的问题可以用 Dagger 解决吗?
如果不是,那么 MapBinder 是否可以成为 Dagger 2.0 的一项功能?
提前欢呼和感谢。