java枚举应用(一)
2016-05-04 14:26
357 查看
/** * 简单枚举 * @author littlehow * */ public enum Week { //周一到周日,不重写其toString的情况,默认为字面量 Monday(1), Tuesday(2), Wednesday(3), Thursday(4), Friday(5), Saturday(6), Sunday(0); private int day; Week(int day) { this.day = day; } /** * 根据数字天数返回对应枚举 * @param day 0-6之间的天数 * @return */ public static Week valueOf(int day) { if (day < 0 || day > 6 ) throw new IllegalArgumentException("no enum day is " + day); Week w = null; //数字都在可控范围,不需要default switch (day) { case 0 : w = Sunday; break; case 1 : w = Monday; break; case 2 : w = Tuesday; break; case 3 : w = Wednesday; break; case 4 : w = Thursday; break; case 5 : w = Friday; break; case 6 : w = Saturday; } return w; } /** * 获取对应的数值 * @return */ public int getDay() { return this.day; } /** * 对枚举的一些基本操作 * @param args */ public static void main(String[] args) { System.out.println(Monday);//输出Monday /** 根据字面量获取枚举实例 */ Week w = Week.valueOf("Thursday"); System.out.println(w.getDay());//4 /** 根据数字天数获取 */ w = Week.valueOf(2); System.out.println(w);//Tuesday try { /** 超出范围则抛出异常 */ w = Week.valueOf(8); } catch (Exception e) { System.out.println(e.getMessage());//no enum day is 8 } try { /** 设置一个没有字面量的枚举 */ w = Week.valueOf("ME"); } catch (Exception e) { System.out.println(e.getMessage());//No enum constant Week.ME } //枚举可作为switch控制语句 java.util.Random r = new java.util.Random(); for (int i = 0; i < 3; i ++) { w = Week.valueOf(r.nextInt(7));//随机三次0-6,看看不同的输出咯 switch (w) { case Monday : System.out.println("今天是周一,又要开始上班了,呜呜..."); break; case Tuesday : System.out.println("今天是周二,昨天上班好累啊."); break; case Wednesday : System.out.println("一晃就周三啦,还有两天放假了,哈哈..."); break; case Thursday : System.out.println("周四了,今天都干了啥呢?"); break; case Friday : System.out.println("请大吼一句:老夫明天不上班!!"); break; case Saturday : case Sunday : System.out.println("好好放松啦,得之不易的周末哎!"); break; default : System.out.println("昏天暗地,不知时日啊!"); } } } }
相关文章推荐
- Java生成CSV文件实例详解
- Java创建多线程的三种方法
- codes sni
- Java异常类简介以及throws,try,catch,throw,finally的区别
- JSch - Java实现的SFTP(文件下载详解篇)
- Java基础知识IO流(Properties)
- Spring的依赖注入
- Java客户端调用WCF服务
- [spring源码学习]四、IOC源码——普通bean初始化
- JAVA第一课
- Java内存区域详解
- JSch - Java实现的SFTP(文件上传详解篇)
- Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D)
- Java 开发 gRPC 服务和客户端
- java并发编程(10)--同步容器
- ActiveMQ学习总结(6)——ActiveMQ集成Spring和Log4j实现异步日志
- ActiveMQ学习总结(6)——ActiveMQ集成Spring和Log4j实现异步日志
- ActiveMQ学习总结(6)——ActiveMQ集成Spring和Log4j实现异步日志
- Spring4--Hello World实例
- eclipse常用功能设置