public enum EnumGender { MALE("1", "男性"), FEMALE("0", "女性"), OTHER("2", "其他"); private String value; private String description; EnumGender (String value, String description){ this.value = value; this.description = description; } public static EnumGender getInstance(String value){ for (EnumGender each : EnumGender.values()){ if (each.getValue().equals(value)){ return each; } } return null; } public String getValue() { return value; } public String getDescription() { return description; } }
测试
public static void main(String[] args) { EnumGender enumOne = EnumGender.getInstance("1"); switch (enumOne) { case MALE: case FEMALE: System.out.println(10); break; default: System.out.println(100); } }
打印结果:10
枚举类有几个注意事项
switch case执行时,会先匹配case,匹配成功,执行case中的代码,遇到break,则跳出switch,结束。
如果case匹配成功,但是没有break,则继续向下执行(不再匹配case),直到遇到break。