关于枚举类的使用

@Getter
@AllArgsConstructor
public enum TerminalTypeEnums {

    /**
     * Moa
     */
    MOA("MOA","Moa"),

    /**
     * PC
     */
    PC("PC","流程类和独立类"),

    ;

    /**
     * 外部访问。
     */
    @JsonValue
    @EnumValue
    private final String enumeration;

    private final String name;

    public String getValue() {
        ValueOf<TerminalTypeEnums, String> valueOf =
            new ValueOf<TerminalTypeEnums, String>(TerminalTypeEnums.class, TerminalTypeEnums::getEnumeration);


        //当传来的数据不是枚举中的类型时,可进行以下两种操作
        //1、使用valueOf.valueOfOrThrow抛出异常
        TerminalTypeEnums pc = valueOf.valueOfOrThrow("PC1");
        //2、使用valueOf.valueOfOrDefault返回新的定义值
        valueOf.valueOfOrDefault("PC", PC);
        //若调用findByDefault方法,则先执行查数据库逻辑,后判断枚举类型中是否有对应值,存在损耗
        valueOf.valueOfOrDefault("PC", findByDefault());
        //不常用,相当于调用findByDefault方法的逻辑,会先执行某个定义的逻辑,再进行判断
        valueOf.valueOfOrOptional("PC1", () -> {
            return Optional.of(TerminalTypeEnums.PC);
        });
        return enumeration;
    }

    TerminalTypeEnums findByDefault() {
        // from db
        return PC;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值