如何打印在Java函数中作为参数传递的Enum值?

时间:2019-03-28 09:04:56

标签: java enums

我的要求是我想将Enum作为函数中的参数传递,并希望从函数中打印Enum的值。对于示例Enum,Category.ONE应该打印1。类似地,对于TWO应该打印2,对于三个应该打印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 个答案:

答案 0 :(得分:1)

您可以添加一个返回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
}

答案 1 :(得分:0)

为该字段声明一个吸气剂,或将其公开:

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,该枚举返回一个整数,描述枚举值的顺序。

答案 2 :(得分:-2)

删除num字段的final修饰符并声明getter方法

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