Java Enum(枚举类型)的几种使用方法
来源:互联网 发布:骚男淘宝外设店 编辑:程序博客网 时间:2024/06/07 01:59
用法一:常量
在JDK1.5 之前,我们定义常量都是: public static fianl…. 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。
public enum Color {
RED, GREEN, BLANK, YELLOW
}
用法二:switch
JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强。
enum Signal {
GREEN, YELLOW, RED
}
public class TrafficLight { Signal color = Signal.RED; public void change() { switch (color) { case RED: color = Signal.GREEN; break; case YELLOW: color = Signal.RED; break; case GREEN: color = Signal.YELLOW; break; } }}
用法三:向枚举中添加属性和方法
主要注意两点:1>必须先定义 enum 实例 2>如果打算自定义自己的方法,那么必须在enum实例序列的最后添加一个分号。
public enum Color { RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);//分好很重要,不能少 // 成员属性,类似于class中的变量名,这里是属性 private String name; private int index; // 构造方法,这是带构造器的方法,与class的方法无异,反编译后可以发现java编译器是把Enum当做Class处理的 private Color(String name, int index) { this.name = name; this.index = index; }// 普通方法 public static String getName(int index) { for (Color c : Color.values()) { if (c.getIndex() == index) { return c.name; } } return null; }// get set 方法 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getIndex() { return index; } public void setIndex(int index) { this.index = index; } }
用法四:覆盖枚举的方法
下面是Enum的API方法,可以Override
protected Object clone() 抛出 CloneNotSupportedException。 int compareTo(E o) 比较此枚举与指定对象的顺序。 boolean equals(Object other) 当指定对象等于此枚举常量时,返回 true。 protected void finalize() 枚举类不能有 finalize 方法。 Class<E> getDeclaringClass() 返回与此枚举常量的枚举类型相对应的 Class 对象。 int hashCode() 返回枚举常量的哈希码。 String name() 返回此枚举常量的名称,在其枚举声明中对其进行声明。 int ordinal() 返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)。 String toString() 返回枚举常量的名称,它包含在声明中。 static <T extends Enum<T>> T valueOf(Class<T> enumType, String Name) 返回带指定名称的指定枚举类型的枚举常量。
用法五:EnumSet、EnumMap的使用
// EnumSet的使用 EnumSet<Color > colorSet = EnumSet.allOf(Color.class); for (Color c : colorSet ) { System.out.println(c); } // EnumMap的使用 EnumMap<Color,String> colorMap = new EnumMap<Color,String>(Color.class); stateMap.put(Color.RED, "is Red"); stateMap.put(Color.GREEN, "is Green"); for (Color c : Color.values()) { System.out.println(c.name() + ":" + colorMap.get(c)); }
0 0
- Java Enum(枚举类型)的几种使用方法
- java 枚举(Enum)的几种用法
- java的枚举类型(enum)实例
- enum枚举的类型和使用方法
- enum 枚举的使用方法
- Java enum 枚举类型
- JAVA枚举类型Enum
- [Java] enum 枚举类型
- Java enum 枚举类型
- java enum 枚举类型
- java枚举类型enum
- Java Enum 枚举类型
- Java枚举类型enum
- Java Enum 枚举类型
- java枚举类型 Enum
- Java枚举类型enum
- java Enum枚举类型
- java enum 枚举类型
- 运算符优先级查询表
- 151019的测试总结
- 清除VS2012生成的不必要文件
- android 通过Logcat找错的是哪一行
- Gallery 和probe数据集
- Java Enum(枚举类型)的几种使用方法
- JABC编程
- 二维费用背包codevs1669运输装备
- nodejs微信开发--设置自定义菜单
- Qt:QT中PRO文件写法的详细介绍
- HDU 1078 FatMouse and Cheese (记忆化搜索)
- IOS开发之----让UILabel 垂直方向顶端对齐的代码
- int型转二进制,八进制,十六进制查表法
- CLR 无法从 COM 上下文 0x208f68 转换为 COM 上下文 0x2090d8,这种状态已持续 60 秒