列舉簡單總結

bisnow_發表於2019-04-20

列舉

使用靜態常量的弊端

  • 安全性低,可接受列舉外的值
  • 可讀性,尤其是列印日誌時

  • 列舉的本質就是一個類(在編譯時期轉換成對應final類的形式,繼承自java.lang.enum)
  • 底層實現執行緒安全
    • 反編譯展示的列舉型別都是static型別的屬性,在類被載入後被初始化,當一個Java類第一次被真正使用到的時候靜態資源被初始化、Java類的載入和初始化過程都是執行緒安全的
public enum ColorEnum {
    RED,GREEN,YELLOW
}
複製程式碼

列舉是實現單例的最好方式

  • 寫法簡單
  • 可以防止反序列化重新建立物件
  • 執行緒安全
  • 唯一缺點: 列舉類的建立物件方式必須使用相應的方法,協同開發時,其他人並不一定知道
public enum Singleton {  
    INSTANCE;  
    public void whateverMethod() {  
    }  
}  
複製程式碼

相關文章