java enum(列舉)使用詳解
說來慚愧,一直沒有怎麼使用過列舉,只知道可以定義日期中的星期幾,沒有用到也就沒有學習,現在還是覺得應該認真瞭解下,在可以用到的時候也會發現原來列舉也可以解決這個問題。廢話不多說了,詳細在下面:
原始的介面定義常量
public interface IConstants
{
String
MON = "Mon" ;
String
TUE = "Tue" ;
String
WED = "Wed" ;
String
THU = "Thu" ;
String
FRI = "Fri" ;
String
SAT = "Sat" ;
String
SUN = "Sun" ;
}
|
語法(定義)
建立列舉型別要使用 enum 關鍵字,隱含了所建立的型別都是 java.lang.Enum 類的子類(java.lang.Enum 是一個抽象類)。列舉型別符合通用模式 Class Enum<E extends Enum<E>>
,而 E
表示列舉型別的名稱。列舉型別的每一個值都將對映到 protected
Enum(String name, int ordinal)
建構函式中,在這裡,每個值的名稱都被轉換成一個字串,並且序數設定表示了此設定被建立的順序。
package com.hmw.test;
/**
*
列舉測試類
*
@author <a href="mailto:[email protected]">何明旺</a>
*/
public enum EnumTest
{
MON,
TUE, WED, THU, FRI, SAT, SUN;
}
|
這段程式碼實際上呼叫了7次 Enum(String name, int ordinal):
new Enum<EnumTest>( "MON" , 0 );
new Enum<EnumTest>( "TUE" , 1 );
new Enum<EnumTest>( "WED" , 2 );
...
...
|
遍歷、switch 等常用操作
對enum進行遍歷和switch的操作示例程式碼:
public class Test
{
public static void main(String[]
args) {
for (EnumTest
e : EnumTest.values()) {
System.out.println(e.toString());
|