枚舉接口用處是提供了枚舉范本,通過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中,在后面的調用中使用起來十分的方便。