(枚举) 在实战中的基本用法

在项目中我们常常会碰到一些常量之类的死数据,但是为了方便管理,我们最好都是不要直接写死,不然等到要修改的时候就只能一条条的修改,那么我们有没有更加方便的方式去保存这些死数据呢,这里我们就可以用到枚举了

枚举的特点:

  • 是一个特殊的类,拥有编译安全、完全单利、和线程的安全

而且我们也可以写一个接口枚举例如:

public interface IEnum {
    String getCode();

    Integer getType();
}

之后对这个写一个接口实现类

//我就写一个游戏类型的枚举

public enum GameTypeEnum implements IEnum{
    /**
     * 网络游戏 1
     * 手机游戏 2
     * 网页游戏 3
     * PC游戏 4
     */
    ONLINEGAME("ONLINEGAME",1),
    PHONEGAME("PHONEGAME",2),
    WEBGAME("WEBGAME",3),
    PCGAME("PCGAME",4);

    /**
     * 枚举标识码
     */
    private String code;

    /**
     * 枚举细节描述
     */
    private Integer type;


    @Override
    public String getCode(){
        return code;
    }

    @Override
    public Integer getType(){
        return type;
    }

    /**
     * 构造方法
     * @param code
     * @param type
     */
    GameTypeEnum(String code, Integer type){
        this.code = code;
        this.type = type;
    }

    /**
     * 获取枚举的方法
     * @param code 传入枚举的code
     * @return 返回枚举
     */
    public static GameTypeEnum getInstance(String code){
        for (GameTypeEnum value : GameTypeEnum.values()){
            if(value.getCode().equals(code)){
                return value;
            }
        }
        return null;
    }
}

在使用的时候我们就可以直接调用获取枚举细节的方法,获取到我们要的写死的值

注意事项

  • 枚举不能被new 、 反射 、序列化等操作
  • 枚举不能被继承
  • 枚举是线程安全的
  • 枚举默认继承Enum
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章