枚举类型的超类
编译枚举类型时,编译器会创建一个类。枚举类型具有构造函数,字段和方法。 枚举类型仅在编译器生成的代码中实例化。
每个枚举类型都隐式地扩展java.lang.Enum
类。 Enum
类中定义的所有方法都可以与所有枚举类型一起使用。
Enum类
下表列出了在Enum
类中定义的方法。
方法名称 | 方法描述 |
---|---|
public final String name() | 返回枚举常量的名称 |
public final int ordinal() | 返回枚举常量的顺序值 |
public final boolean equals(Object other) | 如果指定的对象等于枚举常量,则返回true 。 否则,它返回false 。当它们用于两个枚举常量,== 运算符和equals() 方法返回相同的结果。 |
public final int hashCode() | 返回枚举常量的哈希码值。 |
public final int compareTo(E o) | 将此枚举常量与指定的枚举常量进行比较。 它返回此枚举常量和指定枚举常量的序数值的差异。 |
public final Class getDeclaringClass() | 返回声明枚举常量的类的对象。 |
public String toString() | 默认情况下,它返回枚举常量的名称,与name() 方法相同。 |
public static valueOf(Class enumType, String name) | 返回指定的枚举类型和名称的枚举常量。 |
示例
Level lowLevel = Enum.valueOf(Level.class, "LOW")
以下代码显示了如何比较两个枚举常量:
enum Level {
LOW, MEDIUM, HIGH, URGENT
}
public class Main {
public static void main(String[] args) {
Level s1 = Level.LOW
Level s2 = Level.HIGH
// s1.compareTo(s2) returns s1.ordinal() - s2.ordinal()
int diff = s1.compareTo(s2)
if (diff > 0) {
System.out.println(s1 + " occurs after " + s2)
} else {
System.out.println(s1 + " occurs before " + s2)
}
}
}
上面的代码生成以下结果。
LOW occurs before HIGH