枚举类的使用

该博客介绍了Java中LimitCycleTypeEnum枚举类的实现,包括枚举常量、构造方法以及ALL_MAP静态变量的初始化。ALL_MAP使用ImmutableMap创建,确保枚举值与代码的映射关系不可变。此外,还提供了根据代码获取枚举值的方法。

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

package cn.com.duiba.project.q2.p20210610.webank.enums;

import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Maps;

import java.util.Map;

public enum LimitCycleTypeEnum {

    UNLIMITED(0, "无限制"),
    ACTIVITY_CYCLE(1, "活动周期内限制"),
    DAILY(2, "每日限制"),
    ;

    private int code;
    private String desc;

    LimitCycleTypeEnum(int code, String desc) {
        this.code = code;
        this.desc = desc;
    }
		//ImmutableMap特点:创建之后不可修改,在创建时为其赋予值
    private static final ImmutableMap<Integer, LimitCycleTypeEnum> ALL_MAP;

    static {
        Map<Integer, LimitCycleTypeEnum> tmpMap = Maps.newHashMap();
      	//LimitCycleTypeEnum.values():此方法可以将枚举类转变为一个枚举类型的数组
        for (LimitCycleTypeEnum typeEnum : LimitCycleTypeEnum.values()) {
          	//key:枚举值的code		
          	//value:枚举值的名称
            tmpMap.put(typeEnum.getCode(), typeEnum);
        }
      	/*Immutable集合使用方法:
          一个immutable集合可以有以下几种方式来创建:
          1.用copyOf方法, 譬如, ImmutableSet.copyOf(set)
          2.使用of方法,譬如,ImmutableSet.of("a", "b", "c")或者ImmutableMap.of("a", 1, "b", 2)
          3.使用Builder类
          */
        ALL_MAP = ImmutableMap.copyOf(tmpMap);
    }

    public static LimitCycleTypeEnum getByCode(Integer code) {
        return ALL_MAP.get(code);
    }

    public int getCode() {
        return code;
    }

    public String getDesc() {
        return desc;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值