一般来说,我们为了让枚举对象作为接口的入参,需要在枚举中写一个序列化、反序列化的函数,指明通过什么属性去识别、转换成枚举对象,在该函数加上@JsonCreator注解。然而这一操作对于GET请求的方式不起作用,需要额外处理。
在request中重写枚举对象的set方法,调用在枚举中写好的带@JsonCreator注解的函数。去进行转换
枚举类:
@JsonCreator
public static StatusEnum from(int code ) {
return BaseCodeEnum.codeOf( StatusEnum.class, code ); //自定义的转换逻辑函数
}
request类:
public void setStatus(String code){
try {
status = StatusEnum.valueOf(code);
} catch (IllegalArgumentException e) {
status = StatusEnum.from(Integer.parseInt(code));
}
}