Enum(枚举,enumeration)
- Enum 是 JDK1.5 新引入的特性,存放在 java.lang 包中;
- Enum 允许用常量来表示特定的数据片段,而且全部以安全的形式来表示;
- 详见:Class Enum<E extends Enum>;
1. 常用方法
类型 | 方法 | 说明 |
---|---|---|
int | compareTo(E o) | 比较此枚举常量与指定相邻对象的顺序,如果在指定对象前面返回-1,如果在指定对象后面返回1,其他情况返回0 |
Class < E > | getDeclaringClass() | 返回次枚举常量的枚举累心个相对应的 Class 对象 |
String | name() | 返回次枚举常量的名称 |
int | ordinal() | 返回枚举常量的序数 |
String | toString() | 返回此枚举常量的字符串,它包含在枚举声明中 |
<T extends Enum< T>> | T valueOf(Class< T> enumType, String name) | 返回带指定名称的指定枚举类型的枚举常量 |
2. 创建枚举
- enum 类是抽象类,其构造方法是私有方法,故不能创建对象,也不能直接调用 Enum(String name, int ordinal) 方法;
- 以下方法其实上调用了7次 Enum(String name, int ordinal) 方法;
enum E{
MON, TUE, WED, THU, FRI, SAT, SUN;
}
3. 遍历
enum E {
MON, TUE, WED, THU, FRI, SAT, SUN;
}
public class test {
public static void main(String[] args) {
//增强for遍历
for (E e : E.values()) {
System.out.print(e.toString() + " ");
}
System.out.println();
E i = E.MON;
switch (i) {
case MON:
System.out.println("Monday");
break;
case TUE:
System.out.println("Tuesday");
break;
case WED:
System.out.println("Wednesday");
break;
case THU:
System.out.println("Thursday");
break;
case FRI:
System.out.println("Friday");
break;
case SAT:
System.out.println("Saturday");
break;
case SUN:
System.out.println("Sunday");
break;
}
}
}
4. Java 实例
enum E {
MON, TUE, WED, THU, FRI, SAT, SUN;
}
public class test {
public static void main(String[] args) {
E e = E.WED;
switch (e.compareTo(e.THU)) {
case -1:
System.out.println("WED 在 THU 前");//输出WED 在 THU 前
break;
case 1:
System.out.println("WED 在 THU 后");
break;
default:
System.out.println("WED 与 THU 同一位置");
break;
}
System.out.println(e.name());//输出WED
System.out.println(e.toString());//输出WED
System.out.println(e.ordinal());//输出2,从0开始的返回值
}
}
来源:CSDN
作者:Regino
链接:https://blog.csdn.net/Regino/article/details/104594546