RafaelKoll:
私は、4つのフィリングを含有するラップのコンストラクタをしたい、しかし、1つの充填が空の場合は問題なくコードを実行する(例えば、わずか2または3の代わりに4を用います)。
私は現在、このコードの唯一の充填を含めることができます。
Wrap one=new Wrap( new Bread("Italian"), new Filling("Ham"),new Topping("Cheddar"));
cricket_007:
あなたの現在のコンストラクタで、あなただけのゼロ(持つことができるnull
充填し、トッピング、)または1個のパンを。
あなたはより多くの入力オプションを可能にするために、あなたのコンストラクタをオーバーロードすることをお勧めします。
複数の充填および最大で1つのトッピングを持つようにしたい場合は、このコンストラクタを追加
Wrap(Bread b, List<Filling> fillings, Topping topping)
あなたは、この複数の充填やトッピングを、持っているしたい場合
Wrap(Bread b, List<Filling> fillings, List<Topping> toppings)
それとも最後のケースを可能にし、使用してCollections.singletonList()
一つの項目のリストに。
そして、あなたは使用して、それらを組み合わせることができますthis()
。
要約すると、これは一例です
Bread bread;
List<Filling> fillings;
List<Topping> toppings;
public Wrap(Bread b, List<Filling> fillings, List<Topping> toppings) {
// ...
}
public Wrap(Bread b, Filling f, Topping t) {
this(b, Collections.singletonList(f), Collections.singletonList(t));
}
public Wrap(Bread b, List<Topping> toppings) {
// Is this a pizza?
this(b, null, toppings);
}