1、定义枚举
enum Day {
MONDAY, TUESDAY, WEDNESDAY,
THURSDAY, FRIDAY, SATURDAY, SUNDAY;
2、javap 分析class文件
public final class test.Day extends java.lang.Enum<test.Day> {
public static final test.Day MONDAY;
public static final test.Day TUESDAY;
public static final test.Day WEDNESDAY;
public static final test.Day THURSDAY;
public static final test.Day FRIDAY;
public static final test.Day SATURDAY;
public static final test.Day SUNDAY;
public static test.Day[] values();
public static test.Day valueOf(java.lang.String);
}
3、demo
public enum Day {
MONDAY, TUESDAY, WEDNESDAY,
THURSDAY, FRIDAY, SATURDAY, SUNDAY
public static void main(String[] args)
{
Day[] days2 = Day.values()
System.out.println("day2:"+ Arrays.toString(days2))
Day day = Day.valueOf("MONDAY")
System.out.println("day:"+day)
//创建枚举数组
Day[] days = new Day[]{Day.MONDAY, Day.TUESDAY, Day.WEDNESDAY,
Day.THURSDAY, Day.FRIDAY, Day.SATURDAY, Day.SUNDAY}
for (int i = 0
System.out.println("day[" + i + "].ordinal():" + days[i].ordinal())
}
System.out.println("-------------------------------------")
//通过compareTo方法比较,实际上其内部是通过ordinal()值比较的
System.out.println("days[0].compareTo(days[1]):" + days[0].compareTo(days[1]))
System.out.println("days[0].compareTo(days[1]):" + days[0].compareTo(days[2]))
//获取该枚举对象的Class对象引用,当然也可以通过getClass方法
Class<?> clazz = days[0].getDeclaringClass()
System.out.println("clazz:" + clazz)
System.out.println("-------------------------------------")
//name()
System.out.println("days[0].name():" + days[0].name())
System.out.println("days[1].name():" + days[1].name())
System.out.println("-------------------------------------")
System.out.println("days[0].toString():" + days[0].toString())
System.out.println("days[1].toString():" + days[1].toString())
System.out.println("-------------------------------------")
Day d = Enum.valueOf(Day.class, days[0].name())
Day d2 = Day.valueOf(Day.class, days[0].name())
System.out.println("d:" + d)
System.out.println("d2:" + d2)
// 获取枚举数组
Day[] array = Day.values()
}
}