私は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を直接バイパスしようとする可能性があります、それはここの唯一のオプションですか?
は、同じ機能を持たないために計画はありますcom.google.common.collectビルダーのみですが、ビルダーはどれですか?私は生成されたビルダーのために同じ機能を使用したいです! – oae