本文主要是介绍聊一聊之【枚举】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
-
- 简单枚举
- 带有值的枚举 [by:构造方法]
- 带有值的枚举 [by:抽象方法]
简单枚举
/*** 订单状态枚举类*/
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 {@Overridepublic Integer getStatus() {return 0;}},PAID {@Overridepublic Integer getStatus() {return 1;}},CANCELED {@Overridepublic Integer getStatus() {return 2;}},CLOSED {@Overridepublic Integer getStatus() {return 3;}};/*** 过去数据库的订单状态对应值* @return*/public abstract Integer getStatus();
}
上面的这种方法是通过抽象方法来获取值,这种方法的好处是我们可以在获取状态的地方也可以有一点点逻辑
今天就到这里,再有会继续补充
如果本文对你有所帮助,如果你很闲,希望能评论一下,以资鼓励,我将继续努力
这篇关于聊一聊之【枚举】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!