1,代码
import java.util.Map;
public enum ResponseEnum {
/**
* 成功返回
* */
SUCCEED(0, "成功"),
FAIL(1, "失败"),
UNKNOWN(1001, "未知错误"),
;
private final Integer code;
private final String description;
private static Map<String, ResponseEnum> messageMap;
public Integer getCode() {
return code;
}
public String getDescription() {
return description;
}
//构造函数
ResponseEnum(Integer code, String description) {
this.code = code;
this.description = description;
}
//根据code获取desc
public static String getDescByCode(int code) {
for (ResponseEnum value : values()) {
if (value.getCode() == code) {
return value.getDescription();
}
}
throw new IllegalArgumentException("Unable to parse the provided code " + code);
}
//根据code获取desc
public static int getCodeByDesc(String desc) {
for (ResponseEnum value : values()) {
if (value.getDescription() == desc) {
return value.getCode();
}
}
throw new IllegalArgumentException("Unable to parse the provided desc " + desc);
}
//根据code返回枚举类型
public static ResponseEnum getEnumByCode(Integer code){
for (ResponseEnum responseEnum : values()){
if(responseEnum.getCode().equals(code)){
return responseEnum;
}
}
return null;
}
//根据desc获取枚举对象
public static ResponseEnum getEnumByDesc(String desc){
for (ResponseEnum responseEnum : values()){
if(responseEnum.getDescription().equals(desc)){
return responseEnum;
}
}
return null;
}
// //根据desc获取枚举对象
// public static <T extends ResponseEnum> T getEnumByDesc(Class<T> clazz, String desc) {
// for(T inner : clazz.getEnumConstants())
// if(inner.getDescription().equals(desc))
// return inner;
// return null;
// }
//
// //根据code获取枚举对象
// public static <T extends ResponseEnum> T getEnumByCode(Class<T> clazz, Integer code) {
// for(T inner : clazz.getEnumConstants())
// if(inner.getCode().equals(code))
// return inner;
// return null;
// }
// public static ResponseEnum messageOf(String message) {
// if (messageMap == null) {
// messageMap = Arrays.stream(ResponseEnum.values()).collect(Collectors.toMap(ResponseEnum::getDescription, e -> e));
// }
// return messageMap.getOrDefault(message, UNKNOWN);
// }
}
//此处对后端抛出的异常做国际化处理
/**
} catch (Exception e) {
ImportTemplateDTO importDTO = cacheDto.get(dto.getRowIndex());
//某个异常的枚举对象,如传入“成功”,则responseEnum为SUCCEED
ResponseEnum responseEnum = ResponseEnum.getEnumByDesc(ResponseEnum.class,e.getLocalizedMessage());
importDTO.setFailReason(messageConfig.storageStr(responseEnum.name()));
ResponseEnum.getEnumByDesc(ResponseEnum.class,e.getLocalizedMessage());
errorList.add(importDTO);
iterator.remove();
log.error(e.getLocalizedMessage());
}