一、示例代码
-
新建一个代表星期的枚举类,其中value的值表示星期几
public enum Week { MONDAY(1), TUESDAY(2), WEDNESDAY(3), THURSDAY(4), FRIDAY(5), SATURDAY(6), SUNDAY(7); private Integer value; private Week(int value) { this.value = value; } //获取延伸信息value private Integer getValue() { return value; } //通过延伸信息value获取Week类的一个枚举实例 public static Week getWeekByValue(Integer value) { for(Week week : Week.values()) { if(value.equals(week.getValue())) { return week; } } return null; } }
-
新建一个测试类,在switch中使用枚举
public class TestDemo { public static void main(String[] args) { switch (Week.getWeekByValue(1)) { case MONDAY: ... break; case ... default: break; } } }
二、思路
- 获取想要的枚举类的延伸信息(我的实例中的延伸信息就是value)
- 遍历该枚举类的所有枚举实例
- 判断该次被遍历的枚举实例的延伸信息是否和传入的延伸信息相同,相同则返回该枚举实例