今天領導要求使用枚舉類型實現一些常量設置,在此記錄下使用心得(仍是一些比較簡單的應用)。this
首先定義了以下的枚舉類spa
/** * ${DESCRIPTION} * * @author dengguoqing * @date 2018-08-27 */ public enum Status { /** * 關閉狀態 */ CLOSE("8"), /** * 將要刪除狀態 */ WILL_DELETE("9"), /** * 正常狀態 */ OTHER("-1"); private final String code; Status(String code) { this.code = code; } public String getCode() { return code; } }
在此考慮的如何生成新的枚舉類,由於是用來作比較。並且新的枚舉類的參數是經過其餘類傳遞的。code
因此在如何生成新的枚舉類時產生了困惑。先是使用了if後來改爲swith,可是感受都不太對勁,若是類的類型愈來愈多仍是會有問題。對象
經過百度使用了以下方法來生成新的枚舉類blog
package com.jrx.anytxn.account.common.constant; /** * ${DESCRIPTION} * * @author dengguoqing * @date 2018-08-27 */ public enum Status { /** * 關閉狀態 */ CLOSE("8"), /** * 將要刪除狀態 */ WILL_DELETE("9"), /** * 正常狀態 */ OTHER("-1"); private final String code; Status(String code) { this.code = code; } public static Status getStatus(String code){ for (Status status : Status.values()) { if (status.getCode().equals(code)){ return status; } } return OTHER; } public String getCode() { return code; } }
暫時以此方法生成新的枚舉對象。get