我有一個帶有List屬性的Java AutoValue類。我希望允許構建器追加到列表中,而不必傳遞整個構建的列表。是否可以向Java AutoValue中的集合添加值?
例子:
import com.google.auto.value.AutoValue;
@AutoValue
public abstract class Deck {
public abstract List<Card> cards();
public static Builder builder() {
return new AutoValue_Card.Builder()
.cards(new ArrayList<Card>());
}
@AutoValue.Builder
public abstract static class Builder {
public abstract Builder cards(List<Card> cards);
/**
* Append card to cards in the constructed Deck.
*/
public Builder addCard(Card card) {
// Is it possible to write this function?
}
}
}
什麼是用於編寫addCard功能的最佳解決方案? AutoValue已經以某種方式支持它了嗎?構造類中的中間卡屬性對Builder不可見,所以我無法直接訪問它。我可以通過在Builder中保留自己的副本來嘗試繞過Builder,這是唯一的選擇嗎?
是具有相同的功能不是有計劃僅適用於com.google.common.collect構建器,但適用於任何構建器?我很樂意爲我生成的構建器使用相同的功能! – oae