Как мне напечатать более одного перечисляемого значения с использованием массивов?

#java #arrays #class

#java #массивы #класс

Вопрос:

Я не уверен, как сформулировать вопрос, но скажем, у меня есть пицца с начинкой, и я хочу (через основной класс) распечатать или вызвать описание этой пиццы, которая содержит не одну, а две начинки, как мне это сделать?

Мой класс toppings — это enum, поэтому я до сих пор пробовал это:

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

Очевидно, что это неправильно, поскольку он печатает только сырную начинку. Какие-либо подсказки?

Комментарии:

1. Вы уже отметили этот вопрос arrays . Итак, вы рассматривали возможность чтения руководства по массивам и использования массива для сохранения более одного верхнего значения?

2. Ну, в пицце есть только одно topping поле, чего еще вы ожидаете?

3. Вы также можете использовать список

4. @Enrico нет, я понял. OP хочет, чтобы в пицце было несколько начинок, но для одной начинки есть только одно поле. Это очевидное место, с которого следует начать изменение кода.

5. отредактировал класс pizza с новой информацией.

Ответ №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) {
    ...
} 
 

Комментарии:

1. Добавление (new Toppings[] {…}) спасло меня, спасибо!