整一个
public interface BaseEnum {
/**
* 获取类型
*
* @return
*/
String getValue();
/**
* 获取名称
*
* @return
*/
String getMessage();
}
整一个实体类
@Data
public class Test implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.ID_WORKER_STR)
private String id;
private TestType status;
}
整一个枚举类型
@Getter
@AllArgsConstructor
@JsonFormat(shape = JsonFormat.Shape.OBJECT)//最主要这个注解
public enum TestType implements BaseEnum {
TEST("测试"),
NORMAL("正常");
private String label;
@Override
public String getValue() {
return this.toString();
}
@Override
public String getMessage() {
return this.label;
}
}
用mybatisplus写一个通过id查询数据的接口
Test test=testService.getById(id);
返回值为
{
"row": {
"id": "123",
"status": {
"label": "正常",
"value":"NORMAL"
}
}
}
本文返回值为map类型,用了lombok,
新增修改传值使用Test类可以直接接收无需手动转换
postman测试 提交数据
{
"id": "123",
"status": "TEST"
}
保存或修改成功
通用获取枚举信息
/**
此类自行根据需求修改
*/
public class EnumUtil {
public static void enumToBeanList(Class clz) {
try {
//可以添加 对class类型进行判断是否为枚举类
//得到枚举获取值方法
Method mt = clz.getDeclaredMethod("values", (Class[]) null);
//得到基础枚举集合
BaseEnum[] baseEnums = (BaseEnum[]) mt.invoke(null, null);
//遍历循环枚举存入List集合
for (BaseEnum baseEnum : baseEnums) {
String value = baseEnum.getValue();
String label = baseEnum.getMessage();
System.out.println("label" + label);
System.out.println("value" + value);
}
} catch (Exception e) {
//自行处理异常
}
}
}