switch 与 枚举类结合使用 |
您所在的位置:网站首页 › Java中的与或非枚举类型 › switch 与 枚举类结合使用 |
1.枚举类定义说明 JDK1.5 才开始有枚举类型,同时 Java 组织丰富了 switch 语句:支持枚举。 定义一个枚举类 DeviceType``` import lombok.Getter; /** * 个人安全行业的设备类型 */ @Getter public enum DeviceType { //枚举类型 SOS_ALARM(0, "SOS报警器"), GPS_TRACKER(1, "GPS跟踪器"), SOS_GPS_ALARM(2, "SOS+GPS报警器"); //属性值:即此枚举类,有code与描述name int code; String name; //构造方法 DeviceTypeSafetyEnum(int code, String name) { this.code = code; this.name = name; } //根据枚举类的 code 值,获取枚举类型;当枚举类与switch结合使用时,此方法是必须的 public static DeviceTypeEnum getEnumByKey(int key) { for (DeviceTypeSafetyEnum deviceType : DeviceTypeSafetyEnum.values()) { if (key == deviceType.code) { return deviceType; } } return null; } //根据code值,获取当前枚举类的描述 public static String getValueByKey(int key) { for (DeviceTypeSafetyEnum deviceType : DeviceTypeSafetyEnum.values()) { if (key == deviceType.code) { return deviceType.name; } } return null; } ``` 结合 switch 语句使用说明在switch中使用通常需要先获取枚举类型才判断,因为case中是常量或者int、byte、short、char,写其他代码编译是不通过的 示例int code = 2; switch ( DeviceType.getEnumByKey(code) ) { case SOS_ALARM: log.info(DeviceType.getValueByKey(code)); break; case GPS_TRACKER: //... break; case SOS_GPS_ALARM: //... break; default: } |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |