如何从枚举中获取值?

时间:2013-01-16 12:41:47

标签: java

如何使用switch语句从此枚举中生成实际值?

public enum Gender {
    Unknown(0),
    Male(1),
    Female(2);

    private static final SparseArray<Gender> lookupTable = new SparseArray<Gender>();
    static {
        for (final Gender gender : EnumSet.allOf(Gender.class)) {
            lookupTable.put(gender.intValue, gender);
        }
    }

    private final int intValue;

    public static Gender getByIntValue(int val) {
        return lookupTable.get(val);
    }

    private Gender(int intValue) {
        this.intValue = intValue;
    }

    public int getIntValue() {
        return intValue;
    }
}

2 个答案:

答案 0 :(得分:3)

用“来自此枚举的实际值与开关语句”的含义并不完全清楚。所以这是与这个枚举有关的事情:

您可以在switch语句中使用枚举,如下所示:

Gender g = ...
switch(g) {
   case Male:
     // Do something for the males
     break;
   case Female:
     // Do something for the females
     break;
   case Unknown:
     // Argh... What to do?!
     break;
}

如果你想获取g的intValue,你可以使用:

int value = g.getIntValue();

如果您想从Gender获取int值,可以使用:

Gender g = Gender.getByIntValue(1);

如果您想从Gender获取String值,可以使用:

Gender g = Enum.valueOf(Gender, "Male");

答案 1 :(得分:0)

这就是你想要的吗?

switch (genderVar) {
 case Unknown:
 case Male:
 case Female:
 default:
}