规则枚举?

该代码示例展示了如何使用Java枚举定义不同的检查条件,并通过抽象方法或Predicate接口实现对整数ID的过滤。LowOrderEnums枚举包含了三种状态,分别对应不同的ID范围检查,getEnums方法用于根据ID找到匹配的枚举项并返回名称。
摘要由CSDN通过智能技术生成

一些简单的猜想实现

package com.tthk.inland.ticket.core.enums.czloworder;

import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.Arrays;

/**
 * @author Foam
 * @Description 枚举
 * @date 2023/5/4 17:12
 */
@Getter
@AllArgsConstructor
public enum LowOrderEnums {
    UNLIMITED("枚举1"){
        @Override
        public boolean check(Integer id) {
            return id<1;
        }
    },
    ENUM2("枚举2"){
        @Override
        public boolean check(Integer id) {
            return id >= 1 && id < 3;
        }
    },
    ENUM3("枚举3"){
        @Override
        public boolean check(Integer id) {
            return id > 3;
        }
    };
    private String name;

    public abstract boolean check(Integer id);

    public static String getEnums(Integer id){
        return Arrays.stream(LowOrderEnums.values()).filter(x -> x.check(id)).findFirst().map(LowOrderEnums::getName).orElse(id+"");
    }

    public static void main(String[] args) {
        System.out.println(getEnums(1));
        System.out.println(getEnums(2));
        System.out.println(getEnums(3));
        System.out.println(getEnums(4));
    }
}

package com.tthk.inland.ticket.core.enums.czloworder;

import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.Arrays;
import java.util.function.Predicate;

/**
 * @author Foam
 * @Description 枚举
 * @date 2023/5/4 17:12
 */
@Getter
@AllArgsConstructor
public enum LowOrderEnums {
    UNLIMITED(x -> x < 1,"枚举1"),
    ENUM2(x -> x >= 1 && x < 3,"枚举2"),
    ENUM3(x -> x > 3,"枚举3");
    private Predicate<Integer> accumulator;

    private String name;


    public static String getEnums(Integer id){
        return Arrays.stream(LowOrderEnums.values()).filter(x -> x.getAccumulator().test(id)).findFirst().map(LowOrderEnums::getName).orElse("没匹配到");
    }

    public static void main(String[] args) {
        System.out.println(getEnums(1));
        System.out.println(getEnums(2));
        System.out.println(getEnums(3));
        System.out.println(getEnums(4));
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值