歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Java中的枚舉類型

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