在学习springboot枚举值传参序列化时,发现以下行为。
@Data
@ToString
public class EnumRequest {
@ApiModelProperty("订单号")
private String orderSn;
@ApiModelProperty("订单状态")
private OrderStatusEnum orderStatus;
}
public enum OrderStatusEnum{
NEW(1,"新建"),
SEND(2,"配送"),
RECEIVE(3,"收货"),
DONE(4,"完成");
private Integer code;
private String name;
}
@ApiOperation(value = "枚举类请求传参测试")
@PostMapping("enum-request")
public Rsp<EnumRequest> enumRequest(@RequestBody EnumRequest enumRequest){
log.info("请求参数:{}",enumRequest);
return Rsp.success(enumRequest);
}
这种情况下,枚举类的传参如果是字符串,则按照枚举值的名字解析,如果是整数,则以枚举类的数组下标解析。
即:
{
"orderSn": "123",
"orderStatus": 3
}
当orderStatus=3
会匹配到DONE(4,"完成")
。相等于orderStatus="DONE"
。