最近写需求的时候,遇到了这个问题,记录一下写法。
1、枚举类
package com.model.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.Getter;
import javax.validation.constraints.NotEmpty;
@Data
@ApiModel
public class SpecificColModelSelectReq {
@ApiModelProperty(value = "建模ID", position = 1, required = true)
@NotEmpty(message = "建模ID不能为空")
private String modelId;
@ApiModelProperty(value = "筛选类型(MAX-最大值;MIN-最小值;EARLIEST-最早;LATEST-最晚;FUZZY-模糊;EXACT-精确;REPORT_NUM-报告数)", position = 6, required = true)
@NotEmpty(message = "筛选类型不能为空")
private String chooseType;
@Getter
@AllArgsConstructor
public enum ChooseType {
MAX("MAX", "最大值"),
MIN("MIN", "最小值"),
EARLIEST("EARLIEST", "最早"),
LATEST("LATEST", "最晚录"),
FUZZY("FUZZY", "模糊匹配"),
EXACT("EXACT", "精确匹配"),
DEFAULT("DEFAULT", "条件为空"),
REPORT_NUM("REPORT_NUM", "报告数");
private String code;
private String name;
public static ChooseType getByCode(String code) {
for (ChooseType chooseType : values()) {
if (chooseType.getCode().equals(code)) {
//获取指定的枚举
return chooseType;
}
}
return ChooseType.DEFAULT;
}
}
}
2、switch处理类
switch (SpecificColModelSelectReq.ChooseType.getByCode(req.getChooseType())) {
case MAX:
break;
case MIN:
break;
case EARLIEST:
break;
case LATEST:
break;
case FUZZY:
break;
case EXACT:
break;
case REPORT_NUM:
break;
default:
}