聊一聊之【枚举】

简单枚举

/**
 * 订单状态枚举类
 */
enum OrderStatus {
    /**
     * 未支付
     */
    UN_PAYED,
    /**
     * 已支付
     */
    PAYED,
    /**
     * 已取消
     */
    CANCELED,
    /**
     * 已关闭
     */
    CLOSED;
}

以上代码定义了一个简单的订单状态枚举类,但是这个枚举类只能表示这是一个什么状态,比如说我在数据库中是通过 int 值来表示订单状态的,这个就可能不是很符合我们的需要了,稍作修改

带有值的枚举 [by:构造方法]

/**
 * 订单状态枚举类
 */
enum OrderStatus {
    /**
     * 未支付
     */
    UN_PAYED(0),
    /**
     * 已支付
     */
    PAYED(1),
    /**
     * 已取消
     */
    CANCELED(2),
    /**
     * 已关闭
     */
    CLOSED(3);

    /**
     * 订单状态值
     */
    private Integer status;

    OrderStatus(Integer status) {
        this.status = status;
    }
}

上面的代码,我们就给这个枚举值定义了一个状态值,如果我们要获取 PAYED 所对应的数据库状态值,可以这样 OrderStatus.PAYED.status 就可以取出 已支付对应的状态值 1

带有值的枚举 [by:抽象方法]

上面的代码,我们还可以通过 抽象方法的方式实现


/**
 * 订单状态枚举类
 */
public enum OrderStatus {
    UNPAID {
        @Override
        public Integer getStatus() {
            return 0;
        }
    },
    PAID {
        @Override
        public Integer getStatus() {
            return 1;
        }
    },
    CANCELED {
        @Override
        public Integer getStatus() {
            return 2;
        }
    },
    CLOSED {
        @Override
        public Integer getStatus() {
            return 3;
        }
    };

    /**
     * 过去数据库的订单状态对应值
     * @return
     */
    public abstract Integer getStatus();
}

上面的这种方法是通过抽象方法来获取值,这种方法的好处是我们可以在获取状态的地方也可以有一点点逻辑

今天就到这里,再有会继续补充

如果本文对你有所帮助,如果你很闲,希望能评论一下,以资鼓励,我将继续努力

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值