Eclipse 3.1 引入專屬Enum Wizard,引導開發者逐步建立枚舉類型:
File → New → Other → Java → EnumPriority)。HIGH, MEDIUM, LOW),可逐行編輯。
java.lang.Enum<E>(E 為該枚舉類型本身)。Enum 是 final 類別,不可被直接繼承(編譯錯誤)。class MyEnum extends Enum,必須用 enum 關鍵字定義。
// 錯誤:不能直接繼承 Enum
public class MyEnum extends Enum { } // 編譯錯誤
// 正確:使用 enum 關鍵字
public enum Priority { HIGH, MEDIUM, LOW }

// 來源碼
public enum Priority { HIGH, MEDIUM, LOW }
// 編譯器生成的等效結構(概念示意)
public final class Priority extends Enum<Priority> {
public static final Priority HIGH = new Priority("HIGH", 0);
public static final Priority MEDIUM = new Priority("MEDIUM", 1);
public static final Priority LOW = new Priority("LOW", 2);
// 私有建構子、values()、valueOf() 等靜態方法...
}
每個枚舉值宣告時,編譯器自動呼叫父類別 Enum 的建構子:
// enum Priority { HIGH, MEDIUM, LOW } 等效於:
new Enum<Priority>("HIGH", 0);
new Enum<Priority>("MEDIUM", 1);
new Enum<Priority>("LOW", 2);
name:常數識別字串(name() 返回)。ordinal:宣告順序索引,從 0 開始(ordinal() 返回)。枚舉類別可定義自己的建構子(隱含 private),常數宣告時傳入參數:
enum Priority {
HIGH(38), MEDIUM(36.5), LOW(5.2); // 常數宣告傳參
private final double temperature; // 實例欄位
Priority(double t) { // 自訂建構子
this.temperature = t;
}
public double getTemperature() { return temperature; }
}
運作流程:
new Priority(38)、new Priority(36.5)、new Priority(5.2)。super(name, ordinal),完成父類別初始化。new 關鍵字,語法糖簡化建立過程。enum Priority { HIGH, MEDIUM, LOW } 骨架,游標定位於常數區便於擴充。enum 關鍵字時,內容輔助提示「Create new enum type」。;,編輯器自動切換到類別主體區塊(欄位/建構子/方法區)。理解 enum 隱含 extends Enum<E>、不可直接繼承 Enum、建構子映射雙層機制(父類 Enum(String,int) + 自訂建構子),是掌握枚舉類型底層運作的關鍵。Eclipse 3.1 以精靈化建立、即時錯誤標記、語法糖自動處理,讓開發者輕鬆享受枚舉的型別安全與表達力優勢。