Java常用类:Enum类

作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)

Enum类

为什么要使用Enum呢?首先来看一段代码

//判断用户的身份,根据不同的身份调用不同的方法
public void judgeUserIdentity(int i){
        switch (i){
            case 0:
                doSomething0();break;
            case 1:
                doSomething1();break;
            case 2:
                doSomething2();break;
            case 3:
                doSomething3();break;
            case 4:
                doSomething4();break;
        }
    }

类似这种代码,我在实际工作中也遇到过,可能只有写这段代码的人知道0,1,2,3,4代表什么,其他人拿到就一脸懵逼。所以这种情况下就需要用到枚举,让别人一眼就知道这些魔法值到底是什么含义。

创建枚举类

public enum EnumDemo {
    //定义符合语义的枚举类型
    COPPER("COPPER","铜卡"),
    SILVER("SILVER","银卡"),
    GOLD("GOLD","金卡"),
    PLATINUM("PLATINUM","铂金卡"),
    DIAMOND("DIAMOND","钻石卡");
    //根据需要定义成员变量
    private String type;
    private String msg;
    //构造方法初始化属性的值
    EnumDemo(String type,String msg){
        this.type = type;
        this.msg = msg;
    }
    //getter获取属性值
    public String getType() {
        return type;
    }
    public String getMsg() {
        return msg;
    }
    //该方法主要是为了在switch中使用枚举
    public static EnumDemo getValue(String type){
        if(type == null){
            return null;
        }
        for(EnumDemo item:EnumDemo.values()){
            if(type.equals(item.getType())){
                return item;
            }
        }
        return null;
    }
}

创建好后,重构刚才的代码:

 public void judgeUserIdentity(String type){
        switch (EnumDemo.getValue(type)){
            case COPPER:
                doSomething0();break;
            case SILVER:
                doSomething1();break;
            case GOLD:
                doSomething2();break;
            case PLATINUM:
                doSomething3();break;
            case DIAMOND:
                doSomething4();break;
        }
    }

这样重构以后使得代码的可读性增强,便于维护。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值