Java 小例子:如何使用 Enum
2009-04-11 14:42
344 查看
Java 在 1.5 以前,常量是个头疼的问题。因为一些参数只能取那么几个值,而从参数类型上又看不出来有哪些值可以取。从 1.5 开始 Java 引进了 Enum 枚举类型,并根据 Java 自身的特点将其进行了强化。实际上现在所有的常量都可以通过 Enum 来定义了。下面是一个例子,演示了 Enum 的基本用法,以及如何向 Enum 类型加入自定义属性。
import java.util.Calendar; /** * 演示如何使用 Enum */ public class EnumValue { public static void main(String[] args) { // 演示如何使用 Weekday Weekday w = Weekday.Monday; System.out.println("w = " + w.toString()); System.out.println("Monday compares to Friday = " + Weekday.Monday.compareTo(Weekday.Friday)); System.out.println("Enum value of /"Sunday/" is " + Weekday.valueOf("Sunday")); try { System.out.println("Enum value of /"AnotherDay/" is " + Weekday.valueOf("AnotherDay")); // 这里将会抛出 IllegalArgumentException } catch (IllegalArgumentException e) { System.out.println("exception: " + e.getMessage()); } System.out.println(); // -------------------------------- // 演示如何使用 Month System.out.println("The first month is " + Month.Jan); System.out.println("The full name of the first month is " + Month.Jan.getFullName()); System.out.println("The fifth month is " + Month.valueByIndex(5).getFullName()); System.out.println("Index of August is " + Month.valueByFullName("August").getIndex()); System.out.println("Now is " + Month.thisMonth().getFullName()); } } /** * 一个表示星期几的 enum (这是一个简单的例子) */ enum Weekday { Monday, Tuesday, Wednesday, Thirsday, Friday, Saturday, Sunday } /** * 一个表示月份的 enum (这是一个稍微复杂的例子) */ enum Month { // 十二个月份 Jan("January"), Feb("Febrary"), Mar("March"), Apr("April"), May("May"), June("June"), July("July"), Aug("August"), Sept("September"), Oct("October"), Nov("November"), Dec("December"); // 全名 private String fullName; // 构造方法 Month(String fullName) { this.fullName = fullName; } public String getFullName() { return fullName; } // 获取当前 Enum 值是第几个月份。一月份则返回 1。 public int getIndex() { return ordinal() + 1; } // 根据月数获得 enum 对象 public static Month valueByIndex(int index) { for (Month month : Month.values()) { if (month.getIndex() == index) { return month; } } return null; } // 根据全名获得 enum 对象 public static Month valueByFullName(String fullName) { for (Month month : Month.values()) { if (month.getFullName().equals(fullName)) { return month; } } return null; } public static Month thisMonth() { // Calendar 的月份从 0 算起,而 Month 的月份从 1 算起 int index = Calendar.getInstance().get(Calendar.MONTH) + 1; return valueByIndex(index); } }
相关文章推荐
- [Groovy]如何定义和使用一个Java里的Enum类型
- Java 演示:如何使用Zookeeper 集群例子
- 下面的例子说明了如何使用java.lang.Class.getSimpleName()方法。
- Java 小例子:如何使用 ThreadLocal
- Java调试小例子(如何使用F5和F6)
- 如何使用自己的证书来跑起网上下载对例子
- 【如何提高Java代码质量:频繁插入和删除时使用LinkedList 】
- Java 8:如何使用流方式查询数据库?
- JAVA使用POI如何导出百万级别数据
- Java 中Timer和TimerTask 定时器和定时任务使用的例子
- Java枚举类型入门(2)_java 枚举类型enum 的使用_比(1)稍微深入些
- 如何使用反编译软件得到java源码
- Java之Enum的使用与分析
- Java中的Enum的使用与分析
- java enum(枚举)使用详解 + 总结 - ido - 博客园
- Java使用Google Zxing生成二维码的例子
- 如何使用java中的对象
- Java:如何正确地使用异常详解
- Java 中的枚举类型(enum)怎么使用???
- Java日期格式化及其使用例子收集