Java随机获取枚举类的值,枚举值可控制

本文介绍了一种在Java中随机获取枚举类值的方法,该方法支持通过指定最大值和最小值来控制随机范围。同时,文章还提供了一个交易状态枚举类的例子,展示了如何使用枚举类进行状态管理和获取描述。

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

Java随机获取枚举类的值,获取的枚举值可以根据最大值,最小值来控制

public static <T extends Enum<?>> T randomEnum(Class<T> clazz, Integer min, Integer max) {
    Random random = new Random();

    if (min > clazz.getEnumConstants().length || max > clazz.getEnumConstants().length) {
        return null;
    }

    //参数模式为第二种的时候
    if (min != null && max != null) {
        int rand = random.nextInt(max - min + 1) + min - 1;
        return clazz.getEnumConstants()[rand];
    } else {
        int x = random.nextInt(clazz.getEnumConstants().length);
        return clazz.getEnumConstants()[x];
    }

}

eg:

public enum TradeStatusEnum{

	SUCCESS("1",  "SUCCESS", "支付成功"),

	REFUND("2", "REFUND", "转入退款"),

 	NOTPAY("3",  "NOTPAY", "未支付"),

 	CLOSED("4",  "CLOSED", "已关闭"),

	REVOKED("5",  "REVOKED", "已撤销(刷卡支付)"),

	USERPAYING("6",  "USERPAYING", "用户支付中"),

	PAYERROR("7",  "PAYERROR", "支付失败(其他原因,如银行返回失败)");

    private String id;

    private String status;

    private String desc;

    TradeStatusEnum(String id, String status, String desc) {
        this.id = id;
        this.status = status;
        this.desc = desc;
    }

    public static String getDescByStatus(String status) {
        if (status == null) {
            return null;
        }
        for (TradeStatusEnum tradeStatusEnum : TradeStatusEnum.values()) {
            if (tradeStatusEnum.getStatus().equals(status)) {
                return tradeStatusEnum.getDesc();
            }
        }
        return null;
    }

    public String getId() {
        return id;
    }

    public String getStatus() {
        return status;
    }

    public String getDesc() {
        return desc;
    }
}

新手菜鸟,有问题请多多指正~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值