2015-02-11 59 views
0

由於不可避免的情況下,我需要創建一個枚舉類象下面,使用數字作爲枚舉密鑰

public enum Region 
{ 
1("Region1"), 
2("Region2"); 
} 

但我令牌得到一個錯誤的「語法錯誤‘1’,標識預期」。此枚舉用於jsp中的選項標記。它工作正常,如果使用字符串而不是1,枚舉不允許數字作爲關鍵?

回答

0

不,您不能使用數字作爲枚舉名稱。 也許你可以做

public enum Region { 
    ONE("region1"), 
    TWO("region2"); 
} 
2

任何標識符的第一個字符必須是一個字母。從JLS section 3.8(重點煤礦):

一種標識符爪哇字母爪哇位其中第一個必須是爪哇信無限長度的序列。

[...]

A 「的Java字母」 是用於該方法Character.isJavaIdentifierStart(int)返回true一個字符。

「Java字母」包括大寫和小寫ASCII拉丁字母AZ(\ u0041- \ u005a)和az(\ u0061- \ u007a),並且由於歷史原因,ASCII下劃線(_或\ u005f )和美元符號($或\ u0024)。 $符號只能用於機械生成的源代碼,或者很少用於訪問原有系統上預先存在的名稱。

數字是不允許的,所以你不能命名你的枚舉值12