Java 将类映射绑定到guice模块内的实例
我目前正在尝试添加由Java 将类映射绑定到guice模块内的实例,java,dependency-injection,guice,code-injection,Java,Dependency Injection,Guice,Code Injection,我目前正在尝试添加由map组成的映射条目,因此在尝试了各种其他可能的方法后,我终于找到了一种有效的方法。 由于最初的问题是Guice需要“捕获”某个对象(在本例中,“捕获?扩展模块实例”,基本上是指某个对象是某个模块的实例),但失败了,因此我不得不将已知的模块类转换为其原始类型,如下所示: manager.getRegistry().forEach(new BiConsumer<Class<? extends CustomModule>, ModuleRegistry.Entr
map组成的映射条目,因此在尝试了各种其他可能的方法后,我终于找到了一种有效的方法。
由于最初的问题是Guice需要“捕获”某个对象(在本例中,“捕获?扩展模块实例”,基本上是指某个对象是某个模块的实例),但失败了,因此我不得不将已知的模块类转换为其原始类型,如下所示:
manager.getRegistry().forEach(new BiConsumer<Class<? extends CustomModule>, ModuleRegistry.Entry>() {
@Override
public void accept(Class<? extends CustomModule> moduleClass, ModuleRegistry.Entry entry) {
bind(moduleClass).to(entry.getModule()); // getModule() returns the instance which implements moduleClass
}
});
final Class moduleClass = (Class) aClass;
final Binding binding = injector.getExistingBinding(Key.get(moduleClass));
if (binding == null) {
bind(moduleClass).toInstance(entry.getModule());
}
在我的例子中,我还必须添加一个空检查,但它还包括如何将未知类强制转换为guice的“Key”助手的方法