简单枚举
/**
* 订单状态枚举类
*/
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();
}
上面的这种方法是通过抽象方法来获取值,这种方法的好处是我们可以在获取状态的地方也可以有一点点逻辑
今天就到这里,再有会继续补充
如果本文对你有所帮助,如果你很闲,希望能评论一下,以资鼓励,我将继续努力