我想创建生成器类,并使用它,如下所示:注射建设者
public class SomeBean {
@Inject
private Builder builder;
public void method() {
List<SomeObject> objects = ... ;
for (SomeObject object : objects) {
if (someConditionSatisfy()) {
builder.withPropertyA(object.getPropertyA);
}
builder.withPropertyB(object.getPropertyB);
builder.withPropertyC(object.getPropertyC);
BuiltObject builtObject = builder.build();
someOutputList.add(builtObject);
}
}
}
但法方法()我有有条件的if语句:
if (someConditionSatisfy()) {
builder.withPropertyA(object.getPropertyA);
}
让我们假设在循环的第一次迭代的条件被满足,并builder.withPropertyA()被调用方法。在第二次迭代中,条件不满足。但第一迭代已经设置在助洗剂性能A,所以通过构建器类的构建方法创建的第二个目的也包括该属性。我想避免这种情况。所以问题是:我应该怎么做?我应该在创建目标对象之后“重置”其build()方法中的所有构建器字段吗?或者我应该创建生成器的新实例每次(但我不知道如何做到这一点,并且不使用new关键字 - 我quess我应该从容器中获得新的生成器实例)?
预先感谢帮助