枚举定义固定值规范,加强了程序的可读性、易用性和可维护性。
在接口入参中使用枚举,接收固定枚举入参,可预防入参不规范导致的意外情况,增强接口规范。
- 枚举入参swagger样例
- 与其他类型的入参一样,枚举传参也可以使用validation下的注解进行校验。
@ApiModelProperty(name = "appId", value = "应用Id")
private String appId;
@ApiModelProperty(name = "queryScoreTypeEnum", value = "积分类型")
@NotNull(message = "查询积分类型值不能为空")
private QueryScoreTypeEnum queryScoreTypeEnum;
- mybatis-plus 对枚举入参的解析
- 若枚举入参直接传入,mybatis-plus会将枚举映射为String类型入参
例:定义枚举如下,若入参为DIS_INLAY,打印sql会发现,入参是DIS_INLAY(String),因为mybaits-plus不会去找寻DIS_INLAY的flag值是多少。
public enum SystemFlagEnum {
INLAY(1),
DIS_INLAY(0);
private int flag;
public int getFlag() {
return flag;
}
public void setFlag(int flag) {
this.flag = flag;
}
SystemFlagEnum(int flag) {
this.flag = flag;
}
}
- xml中如何接收枚举值
#{SystemFlagEnum.flag}
枚举名称.枚举中定义的参数 (定义的参数需要定义set,get方法,否则sql一样报错)