枚舉類型的超類
編譯枚舉類型時,編譯器會創建一個類。枚舉類型具有構造函數,字段和方法。 枚舉類型僅在編譯器生成的代碼中實例化。
每個枚舉類型都隱式地擴展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