Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.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 FactoryModuleBuilder_Java_Guice_Assisted Inject - Fatal编程技术网

Java 用于输入列表的Guice FactoryModuleBuilder

Java 用于输入列表的Guice FactoryModuleBuilder,java,guice,assisted-inject,Java,Guice,Assisted Inject,我使用Guice辅助注入和FactoryModuleBuilder来帮助构建适配器类,其中一个类封装另一个类 class MyClassWrapper implements SomeInterface { interface MyClassWrapper.Factory { MyClassWrapper create(MyClass myClass, Database db); } // ... @Inject private MyClassWrapper(@A

我使用Guice辅助注入和FactoryModuleBuilder来帮助构建适配器类,其中一个类封装另一个类

class MyClassWrapper implements SomeInterface {

  interface MyClassWrapper.Factory {
    MyClassWrapper create(MyClass myClass, Database db);
  }

  // ...

  @Inject
  private MyClassWrapper(@Assisted MyClass myClass, @Assisted Database db) {
    // ...
  }
}
假设我想向MyClassWrapper.Factory接口添加另一个方法签名:

List<MyClassWrapper> create(List<MyClass> myClass, Database db);
列表创建(列表myClass,数据库db);

FactoryMethodBuilder能否确定我想要从MyClass对象列表构造MyClassWrapper对象列表?或者我需要手动编写工厂方法实现吗?

我认为Guice不支持这种内置方式,但您可以通过注入所需的所有内容来编写自己的方法。(您没有列出任何非@辅助的依赖项;请记住,您可能根本不需要在此处使用Guice。)

你也可以考虑编写一个静态的方法来处理你的<代码>工厂,并在上面调用Guice创建的实现,但是你可能会失去可读性和理解你在简洁代码中得到的东西。