枚举类实战

该博客介绍了如何使用枚举类(BridageInfoEnum)来存储和管理消防救援大队的信息,包括每个大队的ID和管辖代码。枚举类提供了根据ID获取管辖信息和根据管辖信息获取大队ID的方法。然而,作者也指出,对于一对一的关系,直接使用字典表可能更为合适。此外,还展示了DeviceTypeEnum枚举类在设备类型管理中的应用,包含设备类型的关键字和对应的编号。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

枚举类实操

概述
代码:
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;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值