Enum 枚举
enum 枚举类型 是 JDK1.5中引入的新特性,存放在 java.lang包中
-
创建
注意 : 应在类中创建
一般在该实体类的包下在新建一个enumeration包,把枚举类型的类写在enumeration包下,例如:public enum EnumTest { MON, TUE, WED, THU, FRI, SAT, SUN; }
然后在实体类里引用这个枚举类。
EnumTest et = EnumTest.MON;
给 enum 自定义属性和方法
public enum EnumTest { MON(1), TUE(2), WED(3), THU(4), FRI(5), SAT(6) { @Override public boolean isRest() { return true; } }, SUN(0) { @Override public boolean isRest() { return true; } }; private int value; private EnumTest(int value) { this.value = value; } public int getValue() { return value; } public boolean isRest() { return false; } }
-
遍历
for (EnumTest e : EnumTest.values()) { System.out.println(e.toString()); }
-
常用方法
返回值 方法 注解 int compareTo(E o) 比较此枚举与指定对象的顺序。 Class getDeclaringClass() 返回与此枚举常量的枚举类型相对应的 Class 对象。 String name()
返回此枚举常量的名称,在其枚举声明中对其进行声明 int ordinal()
返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零) String toString() 返回枚举常量的名称,它包含在声明中。 static <T extends Enum> T valueOf(Class<T> enumType, String name)
返回带指定名称的指定枚举类型的枚举常量。
例
public class Test01 {
public enum EnumTest1 {
MON, TUE, WED, THU, FRI, SAT, SUN;
}
public enum EnumTest2 {
MON(1), TUE(2), WED(3), THU(4), FRI(5), SAT(6) {
@Override
public boolean isRest() {
return true;
}
},
SUN(0) {
@Override
public boolean isRest() {
return true;
}
};
private int value;
private EnumTest2(int value) {
this.value = value;
}
public int getValue() {
return value;
}
public boolean isRest() {
return false;
}
}
public static void main(String[] args) {
//遍历
for (EnumTest1 e : EnumTest1.values()) {
System.out.println(e.toString());
}
//创建枚举对象
EnumTest1 test = EnumTest1.TUE;
//switch操作
switch(test) {
case MON:
System.out.println("今天是星期一");
break;
case TUE:
System.out.println("今天是星期二");
break;
// ... ...
default:
System.out.println(test);
break;
}
System.out.println("EnumTest2.FRI 的 value = " + EnumTest2.FRI.getValue());
}
}
运行结果