我使用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对象列表吗?或者我是否需要手动编写工厂方法实现?
答案 0 :(得分:0)
我不认为Guice支持这个作为内置函数,但您可以通过注入Provider
所需的所有内容来编写自己的内容。 (您没有列出任何非@Assisted
依赖项;请记住,您可能根本不需要使用Guice。)
你也可以考虑编写一个静态方法,它接受你的Factory
并在其上调用Guice创建的实现,但是你可能会在简洁的代码中失去可读性和理解力。