enum關鍵字是一個看似很小的特性。使用這個關鍵字,我們可以創建一個枚舉類型。
事實上,在使用enum關鍵字創建新的枚舉類型時,其實是創建了一個java.lang.Enum 類的子類。枚舉中每個指定的值都可以看做是該類的一個實例。
不過我們並不需要在意枚舉的本質,只需要將它當做一種創建數據類型的方式,然後可以將獲得的類型直接使用即可。
在項目開發過程中,我們經常需會用到一些常量,比如某個屬性的一組可能值等。我們不建議在程序中直接判斷常量的值(這樣容易出錯,而且需要開發人員記住每個常量的精確值)。可以使用枚舉類型來保存一組不變的值。
枚舉還有一個非常實用的特性,即應用在switch語句中。這使程序的可讀性大大提高。
我們可以在枚舉類中添加各種變量和方法,或者覆蓋一個方法(比如toString())。
EnumMap 和 EnumSet這兩個類使我們可以更加方便的處理枚舉類型。
EnumMap 類是 java.util.Map 接口的一個特殊實現,該接口中的key是一個枚舉類型。
EnumSet 類則實現了 java.util.Set 接口,該接口保存了一種枚舉類型的值的集合,我們可以使用它來保存一組特性/屬性值。EnumSet使我們可以向操作其他Set對象一樣操作一組枚舉。