如何根据输入选择枚举

时间:2018-06-25 22:30:40

标签: java enums

我创建了不同的枚举,我想根据输入值使用它们。就像输入值是1一样,那么我将使用第一个枚举,如果输入值是2则使用第二个枚举。代码如下:

for (ENUM_ONE enumOne: ENUM_ONE.values()) {
    ENUM_ONE Obj = ((ENUM_ONE) enumOne);
    System.out.println(Obj.getName());
}

我可以定义一个变量来表示不同的枚举吗?就像

if(input == 1){
    enum = ENUM_ONE;
}else{
    enum = ENUM_TWO;
}

for (enum enumOne: enum .values()) {
        enum Obj = ((enum) enumOne);
        System.out.println(Obj.getName());
    }

是否有某种方法可以将ENUM_ONE更改为ENUM_TWO,这样就不必每次都写类似的for()

谢谢。

1 个答案:

答案 0 :(得分:1)

向枚举添加一个表示某些内容的参数(例如Integer)。然后迭代枚举值,找到实际包含该值的枚举值。

或者,您可以创建一个Map以进行快速的枚举查找。

检查以下链接以了解更多信息:https://www.google.pl/amp/s/www.geeksforgeeks.org/enum-customized-value-java/amp/