有构造方法(构造方法有参数)的枚举是比较常用的一种方式:
/** * 任务状态枚举类 * Created by SYJ on 2017/4/27. */ public enum TaskStatusEnum { NotStart(0), //未开始 Doing(1), //执行中 Pause(2), //暂停 Completed(3), //已完成 Del(4), //删除 CutShort(5) ; //提前结束 private int value;
下面就是构造方法,只有搞了早早函数,枚举里才能搞相应的值,具体原理没有深究 TaskStatusEnum(int value) { this.value=value; }
这是getter方法 public int getValue(){ return value; } /** * 根据value返回对应的枚举值 * @param value * @return */ public static TaskStatusEnum valueOf(int value) { switch (value) { case 0: return NotStart; case 1: return Doing; case 2: return Pause; case 3: return Completed; case 4: return Del; case 5: return CutShort; default: return null; } } }
像现在公司用的
public enum CheckStandCode { PAY_SUCESS("00","处理成功"), //接口调用成功 PAY_FAIL("01","处理失败"), //接口调用返回失败 接口调用异常,网络异常,参数不合法,参数少传... PAY_WAIT("02","等待用户付款"), PAY_PROCESSING("03","支付处理中"), PAY_CLOSED("04","订单关闭"), //订单关闭 PAY_FINISHED("05","交易结束"), PAY_CASH_REFUND("06","现金退款成功"), PAY_REFUND("07","已退款"), PAY_CANCELED("08","已撤销"), PAY_REVOKED("09","已撤销(刷卡支付)"), private final String code; private final String message; private CheckStandCode(String code, String message){ this.code = code; this.message = message; } public String getCode() { return code; } public String getMessage() { return message; } @Override public String toString() { return "异常提示:状态码【"+code+"】,错误信息【"+message+"】"; } }
然后在其他类里就可以这样子调用:
PAY_FAIL_ORDER_EXISTS就是上面定义的一个枚举
payOrderRsp.setResultCode(PAY_FAIL_ORDER_EXISTS.getCode());