【问题标题】:How do I print more than one enum value using arrays?如何使用数组打印多个枚举值?
【发布时间】:2022-01-15 07:18:02
【问题描述】:

我不知道如何提出这个问题,但我说我有一个带有配料的披萨,我想(通过主类)打印或调用这个披萨的描述,其中包含的配料不是一种而是两种,如何我应该这样做吗?

我的浇头类是一个枚举,所以到目前为止我已经尝试过:

public class Pizza{

    private Toppings[] toppings;

    public Pizza(Toppings[] toppings){
        this.toppings = new Toppings[]{Toppings.tomatosauce, Toppings.cheese};
    }

    public String toString(){
        return "Toppings: " + toppings;
    }

}

然后在主类中:

public class Main {

    public static void main(String[] args) {
        Pizza pizza = new Pizza(Toppings.cheese);
        System.out.println(pizza);
    }
}

显然,这是错误的,因为它只打印奶酪面层。有什么提示吗?

【问题讨论】:

  • 您已经用arrays 标记了这个问题。那么你有没有考虑过阅读tutorial about arrays并使用一个数组来保存多个Topping?
  • 那么 Pizza 只有一个 topping 字段,您还能期待什么?
  • 你也可以使用列表
  • @Enrico 不,我明白了。 OP 想要在比萨饼上添加多个浇头,但单个浇头只有一个字段。这显然是开始更改代码的地方。
  • 用新信息编辑了比萨课。

标签: java arrays class


【解决方案1】:

你可以用这个:

public class Pizza{

    private Toppings[] toppings;

    public Pizza(Toppings ...toppings){
        this.toppings = toppings;
    }

    public String toString(){
        return "Toppings: " + Arrays.toString(toppings);
    }

}

class Main {

    public static void main(String[] args) {
        Pizza pizza = new Pizza(Toppings.cheese, Toppings.tomato);
        System.out.println(pizza);
    }
}

enum Toppings { cheese, tomato }

Pizza pizza = new Pizza(new Toppings[]{Toppings.cheese, Toppings.tomato});

改为更改Pizza的构造函数:

public Pizza(Toppings[] topping) {
    ...
} 

【讨论】:

  • 添加 (new Toppings[] {...}) 救了我,谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-26
相关资源
最近更新 更多