枚举类实操
概述
代码:
package com.gstanzer.microservice.unit.safety.common.enums;
/**
* @author 王顺
* @description
* @date 2022/4/12
*/
public enum BridageInfoEnum {
芜湖市消防救援支队("BR430200202101160001","34002000"),
芜湖市镜湖区消防救援大队("BR430202202101160002","34002201"),
芜湖市弋江区消防救援大队("BR430203202101160004","34002202"),
芜湖市三山经济开发区消防救援大队("BR430204202101160005","34002203"),
芜湖市鸠江区消防救援大队("BR430211202101160006","34002204"),
芜湖市湾沚区消防救援大队("BR430221202101160007","34002221"),
芜湖经济技术开发区消防救援大队("BR430223202101160009","34002205"),
芜湖长江大桥综合经济开发区消防救援大队("BR430224202101160010","34002207"),
无为市消防救援大队("BR430225202101160011","34121833"),
繁昌县消防救援大队("BR430271202101160003","34002222"),
南陵县消防救援大队("BR430281202101160008","34002223");
private String bridageId;
private String fireControl;
BridageInfoEnum (String bridageId,String fireControl){
this.bridageId=bridageId;
this.fireControl=fireControl;
}
private String getBridageId(){
return bridageId;
}
private String getFireControl(){
return fireControl;
}
//根据bridage获取管辖信息,如果没有就默认返回支队管辖id
public static String getFireControlByBridageId(String bridageId){
for (BridageInfoEnum infoEnum : BridageInfoEnum.values()) {
if (infoEnum.getBridageId().equals(bridageId)) {
return infoEnum.getFireControl();
}
}
return "34002000";
}
//根据管辖信息获取brigadeid,如果没有默认返回支队bridageid
public static String getBrigadeIdByFireControl(String fireControl){
for (BridageInfoEnum infoEnum : BridageInfoEnum.values()) {
if (infoEnum.getFireControl().equals(fireControl)) {
return infoEnum.getBridageId();
}
}
return "BR430200202101160001";
}
}
代码介绍:
-
首先需要Enum类的字段,通常是两个key 和value
-
芜湖市消防救援支队(“BR430200202101160001”,“34002000”)
-
这里需要注意的是,最前面的 "芜湖市消防救援支队"就是一个叫介绍,后面可用
-
BridageInfoEnum 南陵县消防救援大队 = BridageInfoEnum.南陵县消防救援大队;
-
-
然后是构造器和这两个字段的get方法(这里需要注意的是不给set方法,因为这里的东西不允许修改)
-
然后就是可以自定义一个方法,通过key获得value----通过 value获得key
-
上述方法用到for (BridageInfoEnum infoEnum : BridageInfoEnum.values()) {}
-
上述方法就相当于遍历每一个枚举
缺陷:
后期自己想了一下,对于这种一对一的关系其实没有必要搞一个枚举来进行对于,直接在字典表里面进行维护一下就行,假如真的想用枚举类可以在1对很多的情况下面使用
package com.gstanzer.microservice.unit.safety.common.enums;
/**
* @author wzx
* @Description 设备类型枚举
* @Date 2021/9/23 13:51
*/
public enum DeviceTypeEnum {
水系统检测(1,"19150000,19020000,19030000"),
视频监控(2,"19170000"),
电气火灾监测(3,"02040000,02050000,02060000,02070000,02170000,02220000,02230100,02230300,02230500,02230600,02230700,02230800,02231000,02231200,02231300"),
用户信息监测(4,"19010000");
private Integer key;
private String value;
DeviceTypeEnum(Integer key, String value) {
this.key = key;
this.value = value;
}
public String getValue() {
return value;
}
}