どのように私は、同じオブジェクトの数が含まれていますが、それを無視して1つは空の場合は、コンストラクタを作ることができますか?

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);
}

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=212489&siteId=1