我想为包含四个填充物的包装创建一个构造函数,但是如果一个填充物是空的(例如只使用 2 或 3 个而不是 4 个)执行代码没有任何问题。
我目前只能包含一个填充此代码的内容。
Wrap one=new Wrap( new Bread("Italian"), new Filling("Ham"),new Topping("Cheddar"));
最佳答案
使用当前的构造函数,您只能有零个 (null
) 或一个面包、馅料和浇头。
您需要重载您的构造函数以允许更多输入选项。
如果你想有不止一种馅料和最多一种浇头,添加这个构造函数
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);
}
关于java - 我怎样才能创建一个包含许多相同对象的构造函数,但如果其中一个对象为空则忽略它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53574896/