Как напечатать значение Enum, которое передается в качестве параметра в функцию в Java? - PullRequest
0 голосов
/ 28 марта 2019

Мое требование - я хочу передать Enum в качестве параметра в функцию, а из функции хочу вывести значение Enum.Для примера Enum Category.ONE должен печатать 1. Аналогично для TWO должен печататься 2, а для THREE должен печататься 3.

Я присвоил значение Enum, как 1, 2, 3.

enum Category {
    ONE(1),
    TWO (2),
    THREE(3);

    private final Integer num;

    Category(Integer val) {
        num = val;
    }

}

public class EnumDemo1 {
    public static void printEnumValue(Category category){
        System.out.println(category.name()); // Want to print the value of ENUM. 1, 2, 3
    }
    public static void main(String[] args) throws Exception {
        for(Category category: Category.values()){
            printEnumValue(category);
        }
    }
}

Ответы [ 3 ]

1 голос
/ 28 марта 2019

Вы можете добавить метод, который возвращает num, например ::

enum Category {
    ONE(1),
    TWO (2),
    THREE(3);

    private final Integer num;

    Category(Integer val) {
        num = val;
    }

    public int getValue() {
        return num;
    }
}

А затем позвоните по номеру printEnumValue, например ::

public static void printEnumValue(Category category){
    System.out.println(category.getValue()); // Want to print the value of ENUM. 1, 2, 3
}
0 голосов
/ 28 марта 2019

удалить final модификатор для поля num и объявить метод получения

enum Category {
    ONE(1),
    TWO (2),
    THREE(3);
    // 
    private Integer num;

    Category(Integer val) {
        this.num = val;
    }
    public int getValue() {
        return num;
    }
}

public class EnumDemo1 {
     public static void printEnumValue(Category category){
         System.out.println(category.getValue()); // Want to print the value of ENUM. 1, 2, 3
     }
     public static void main(String[] args) throws Exception {
        for(Category category: Category.values()){
            printEnumValue(category);
        }
    }
}

см. https://docs.oracle.com/javase/tutorial/java/javaOO/enum.html для получения дополнительной информации

0 голосов
/ 28 марта 2019

Объявите получатель для поля или сделайте его общедоступным:

enum Category {
    ONE(1),
    TWO (2),
    THREE(3);

    private final Integer num;

    Category(Integer val) {
        num = val;
    }
    public int getNum() {
        return num;
    }
}

public class EnumDemo1 {
     public static void printEnumValue(Category category){
         System.out.println(category.getNum()); // Want to print the value of ENUM. 1, 2, 3
     }
     public static void main(String[] args) throws Exception {
        for(Category category: Category.values()){
            printEnumValue(category);
        }
    }
}

Кроме того, перечисления имеют ordinals, которые возвращают целое число, описывающее порядок значения перечисления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...