博文首发地址:https://blog.virde.xyz

SpringBoot Enum 传参行为学习记录

在学习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"

posted @ 2022-10-08 16:36  黑风风  阅读(193)  评论(0编辑  收藏  举报

博文首发地址:https://blog.virde.xyz