首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Java 枚舉類型語法規則:靜態字段必須在枚舉常量之後聲明

     編輯:程式設計綜合問答

錯誤代碼示例

public enum EnumTest implements DemoInterface {
    private static int i = 5;  // ❌ 編譯錯誤:靜態字段在枚舉常量之前

    CONSTANT_A {
        public int getI() { return i; }
        public String getDesc() { return "A"; }
    },
    CONSTANT_B {
        public int getI() { return i; }
        public String getDesc() { return "B"; }
    };

    // 正確位置:枚舉常量結束後
    private static int i = 5;  // ✅ 編譯通過
}

語法規則解析

Java 枚舉定義語法強制要求:

  1. 首先列舉所有枚舉常量(以分號 ; 結束);
  2. 然後才能定義構造方法、實例字段、靜態字段、方法等類成員。

錯誤原因:編譯器解析枚舉時,先處理常量列表,遇到非常量成員即報錯。將 private static int i = 5; 移至常量列表之後即可解決。

最佳實踐

  • 枚舉常量優先,成員聲明後置;
  • 靜態字段建議配合單例模式或工具類使用,避免枚舉中濫用靜態狀態。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved