浅谈java枚举(enum)
2015-09-17 15:32
453 查看
在实际编程过程中,会经常遇到这样的数据集,他们的数值在程序中是稳定不可变的,而且数据集中的元素是有限的,比如一周,四季等等,那么如何更好处理好这些数据集,此时枚举就派上了用场.
enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性,存放在 java.lang 包中。
下面是我在使用 enum 过程中的一些经验和总结,主要包括如下内容:
在jdk1.5之前,我们定义常量一般都是public static final,那么有了枚举之后,我们就可以这样玩了
枚举对象还可以加上value属性,让我们用起来更方便,看上去和HashMap的功能有点类似
实现带有抽象方法的枚举,比如现在有一个订单状态的场景,用枚举代表订单各种状态就非常方便了
enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性,存放在 java.lang 包中。
下面是我在使用 enum 过程中的一些经验和总结,主要包括如下内容:
在jdk1.5之前,我们定义常量一般都是public static final,那么有了枚举之后,我们就可以这样玩了
public enum WeekDay{ MONDAY,TUESDAY,WENDNESDAY,THURSDAY,FRIDAY }
枚举对象还可以加上value属性,让我们用起来更方便,看上去和HashMap的功能有点类似
public enum WeekDay{ MONDAY("周一"),TUESDAY("周二"),WENDNESDAY("周三"),THURSDAY("周四"),FRIDAY("周五"); } private String value; //构造器必须要有,而且是私有构造器,保证只能在内部使用 private WeekDay(String value){ this.value = value; } public String getValue() { return value; } public void setValue(String value) { this.value = value; } //这样调用WeekDay.THURSDAY,我们就可以得到周四这个值了,这样做用在switch上代码的可读性也很好,jdk1.6之前switch只支持int,char,enum类型
实现带有抽象方法的枚举,比如现在有一个订单状态的场景,用枚举代表订单各种状态就非常方便了
public enum OrderState { CANCEL {public String getName(){ return "已取消";}}, WAITCONFIRM {public String getName(){ return "待审核";}}, WAITPAYMENT {public String getName(){ return "等待付款";}}, ADMEASUREPRODUCT {public String getName() { return "正在配货";}}, WAITDELIVER {public String getName(){ return "等待发货";}}, DELIVERED {public String getName(){ return "已发货";}}, RECEIVED {public String getName(){ return "已收货";}}; //必须要有个抽象方法 public abstract String getName(); } //调用OrderState.CANCEL.getName(),就可以获取“已取消状态了”
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- [原创]java局域网聊天系统