需求:定义了一个枚举类,枚举类里面的参数需要返回给前端
当然这里既然是枚举出来的,一般不需要轻易改动,前端也是可以写死的
废话少说上代码
/**
* 自然人客户证件类型
*/
public enum IdCardTypeEnum {
sfz("111", "身份证"), hk("112", "户口簿"), jrz("113", "军人证"), hz("114", "护照"), jdc("115", "机动车驾驶证")
, gatxz("116", "港澳通行证"), dltw("117", "大陆居民往来台湾通行证"), gajm("118", "港澳居民来往内地通行证")
, twjm("119", "台湾居民来往大陆通行证"), wgr("120", "外国人永久居留身份证"), qt("999", "其他");
private final String code;
private final String message;
IdCardTypeEnum(String code, String message)
{
this.code = code;
this.message = message;
}
public String getCode()
{
return code;
}
public String getMessage() {
return message;
}
}
我想要的是将Code与message返回给前端做选择参数
@RestController
@RequestMapping("/third/ins/zxb")
@Slf4j
public class ZxbController extends BaseController {
@GetMapping(value = "/param/{type}")
public AjaxResult param(@PathVariable("type") String type) throws Exception {
Class<Enum> clazz = null;
try {
// 参数转大写
String className = type.substring(0, 1).toUpperCase() + type.substring(1);
// 通过完整的类名获取
clazz = (Class<Enum>)Class.forName("com.third.ins.constants.zxb."+className);
} catch (Exception e) {
return AjaxResult.success();
}
//获取所有枚举实例
Enum[] enumConstants = clazz.getEnumConstants();
HashMap<String, String> hashMap = new HashMap<>();
for (Enum enumItem : enumConstants) {
String code = clazz.getMethod("getCode").invoke(enumItem).toString();
String message = clazz.getMethod("getMessage").invoke(enumItem).toString();
hashMap.put(code,message);
}
return AjaxResult.success(hashMap);
}
}
最终返回结果: