枚举笔记

有构造方法(构造方法有参数)的枚举是比较常用的一种方式:

/**
 * 任务状态枚举类
 * 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());
原文地址:https://www.cnblogs.com/cherishforchen/p/10935636.html