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;
}
}
新手菜鸟,有问题请多多指正~