我想創建生成器類,並使用它,如下所示:注射建設者
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我應該從容器中獲得新的生成器實例)?
預先感謝幫助