1、最古老的
//未處理 public static final Integer PROCESS_STATUS_UNTREATED = 0; //已接收 public static final Integer PROCESS_STATUS_ACCPECTED = 1;
//已處理
public static final Integer PROCESS_STATUS_PROCESSED = 2;
2、改進版的
public static final class PROCESS_STATUS{ //未處理 public static final Integer UNTREATED = 0; //已接收 public static final Integer ACCPECTED = 1; //已處理 public static final Integer PROCESSED = 2; }
3、枚舉版(好處顯而易見,既可以獲取code又能獲取漢字),以后定義常量采用此方法
/** * 常量的枚舉定義接口 * @author yangzhilong * @param <T> * */ public interface BaseConstant<T> { T getCode(); String getDesc(); }
/** * 操作類型 * @author yangzhilong * */ public enum OPERATION_TYPE implements BaseConstant<String>{ ADD("add", "新增"), UPDATE("update", "修改"), DELETE("delete", "刪除"); private String code; private String desc; OPERATION_TYPE(String key, String value) { this.code = key; this.desc = value; } @Override public String getCode() { return code; } @Override public String getDesc() { return desc; } }
調用方式:
//獲取編碼 PROCESS_STATUS.UNTREATED.getCode(); //獲取描述 PROCESS_STATUS.UNTREATED.getDes();
根據枚舉類型和編碼獲取code的描述:
public class ConstantUtils { /** * 根據枚舉的code獲取desc * @param <T> * @param clazz * @param codeValue * @return */ public static <T extends Enum<T> & BaseConstant<T>> String getEnumValue(Class<T> clazz , Object codeValue) { String result = null; T[] enums = clazz.getEnumConstants(); for(T obj : enums){ if(obj.getCode().equals(codeValue)){ result = obj.getDesc(); break; } } return result; } /** * 根據枚舉的code獲取整個枚舉對象 * @param <T> * @param clazz * @param codeValue * @return */ public static <T extends Enum<T> & BaseConstant<T>> BaseConstant<T> getEnum(Class<T> clazz , Object codeValue) { BaseConstant<T> result = null; T[] enums = clazz.getEnumConstants(); for(T obj : enums){ if(obj.getCode().equals(codeValue)){ result = obj; break; } } return result; } }