枚举接口用处是提供了枚举范本,通过implement此接口能实现很多类型的枚举类型实现,现在来看一下实现代码
1. BaseEnum<K, V>接口代码:
//这里的K和V分别是指枚举标识和描述的类型,这里是泛型 public interface BaseEnum<K, V> { /** * 获取编码 * * @return 编码 */ K code(); /** * 获取描述 * * @return 描述 */ V desc(); }
2. 接口调用
public enum BaseEnums implements BaseEnum<String, String> { SUCCESS("request.success", "请求成功"), FAILURE("request.failure", "请求失败"), OPERATION_SUCCESS("operation.success", "操作成功"), OPERATION_FAILURE("operation.failure", "操作失败"), ERROR("system.error", "系统异常"), NOT_FOUND("not_found", "请求资源不存在"), FORBIDDEN("forbidden", "无权限访问"), VERSION_NOT_MATCH("record_not_exists_or_version_not_match", "记录版本不存在或不匹配"), PARAMETER_NOT_NULL("parameter_not_be_null", "参数不能为空"); private String code; private String desc; private static Map<String, String> allMap = new HashMap<>(); BaseEnums(String code, String desc) { this.code = code; this.desc = desc; } static { for(BaseEnums enums : BaseEnums.values()){ allMap.put(enums.code, enums.desc); } } @Override public String code() { return code; } @Override public String desc() { return desc; } public String desc(String code) { return allMap.get(code); } }
这样一来,枚举类型中各值就以此进入allMap中,在后面的调用中使用起来十分的方便。