Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将类映射绑定到guice模块内的实例_Java_Dependency Injection_Guice_Code Injection - Fatal编程技术网

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”助手的方法