如何使用数组打印多个枚举值?

Posted

技术标签:

【中文标题】如何使用数组打印多个枚举值?【英文标题】: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 想要在比萨饼上添加多个浇头,但单个浇头只有一个字段。这显然是开始更改代码的地方。 用新信息编辑了比萨课。 【参考方案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[] ...) 救了我,谢谢!

以上是关于如何使用数组打印多个枚举值?的主要内容,如果未能解决你的问题,请参考以下文章

java中如何将枚举值用循环输出?

如何从不同的方法打印多个变量?

如何打印多个 json 数组

如何将枚举的十六进制值打印到C++中的字符串

如何在java中打印数组中的最小值? [复制]

如何在 JSON 数组中打印数组值 [关闭]