歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Java中的枚舉類型

Java中的枚舉類型

日期:2017/3/1 10:09:57   编辑:Linux編程

enum關鍵字是一個看似很小的特性。使用這個關鍵字,我們可以創建一個枚舉類型。

事實上,在使用enum關鍵字創建新的枚舉類型時,其實是創建了一個java.lang.Enum 類的子類。枚舉中每個指定的值都可以看做是該類的一個實例。

不過我們並不需要在意枚舉的本質,只需要將它當做一種創建數據類型的方式,然後可以將獲得的類型直接使用即可。

在項目開發過程中,我們經常需會用到一些常量,比如某個屬性的一組可能值等。我們不建議在程序中直接判斷常量的值(這樣容易出錯,而且需要開發人員記住每個常量的精確值)。可以使用枚舉類型來保存一組不變的值。

  1. public enum State{
  2. ACTIVE, CLOSED
  3. }

枚舉還有一個非常實用的特性,即應用在switch語句中。這使程序的可讀性大大提高。

  1. State currentState=State.ACTIVE;
  2. switch (currentState) {
  3. case ACTIVE:
  4. //blabla
  5. break;
  6. case CLOSED:
  7. //blabla
  8. break;
  9. }

我們可以在枚舉類中添加各種變量和方法,或者覆蓋一個方法(比如toString())。

  1. public enum State{
  2. ACTIVE("Active",1), CLOSED("Closed",0);
  3. //成員變量、構造方法、get/set方法、覆蓋方法等
  4. }

EnumMap 和 EnumSet這兩個類使我們可以更加方便的處理枚舉類型。

EnumMap 類是 java.util.Map 接口的一個特殊實現,該接口中的key是一個枚舉類型。

  1. Map<State, Integer> map = new EnumMap<State, Integer>(State.class);
  2. map.put(State.ACTIVE, 1);

EnumSet 類則實現了 java.util.Set 接口,該接口保存了一種枚舉類型的值的集合,我們可以使用它來保存一組特性/屬性值。EnumSet使我們可以向操作其他Set對象一樣操作一組枚舉。

Copyright © Linux教程網 All Rights Reserved