Guice FactoryModuleBuilder用于输入列表

时间:2013-01-28 06:31:11

标签: java guice assisted-inject

我使用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);

FactoryMethodBuilder可以搞清楚我想从MyClass对象列表构建一个MyClassWrapper对象列表吗?或者我是否需要手动编写工厂方法实现?

1 个答案:

答案 0 :(得分:0)

我不认为Guice支持这个作为内置函数,但您可以通过注入Provider所需的所有内容来编写自己的内容。 (您没有列出任何非@Assisted依赖项;请记住,您可能根本不需要使用Guice。)

你也可以考虑编写一个静态方法,它接受你的Factory并在其上调用Guice创建的实现,但是你可能会在简洁的代码中失去可读性和理解力。