如何使用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;
}
}
答案 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:
}