java - 我怎样才能创建一个包含许多相同对象的构造函数,但如果其中一个对象为空则忽略它?

标签 java

我想为包含四个填充物的包装创建一个构造函数,但是如果一个填充物是空的(例如只使用 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/

相关文章:

java - 什么时候在java中创建数组类?

java - 使用poi从excel文件中读取图像和数据

java - 如何使用 Spring Security 保护 Vaadin 流应用程序

java - servlet 收到 AJAX 调用但未给出响应

java - 日期比较失败

java - 关于 LinkedBlockingQueue 迭代器从不抛出 ConcurrentModificationException

java - 在生产环境中实现最佳性能的 APR

java - 更多决策表在流口水

java - 在java中添加27个字符的十六进制字符串中的整数

java - 创建 Eclipse 模板以在范围内打印变量