使用numeric作为枚举键

时间:2015-02-11 19:22:20

标签: java jsp enums

由于不可避免的情况,我需要创建一个类似下面的枚举类,

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

但是我收到了错误"令牌上的语法错误' 1',标识符预期"。此枚举用于jsp中的选项标记。如果使用字符串而不是1,它工作正常,枚举不允许数字作为键吗?

3 个答案:

答案 0 :(得分:2)

任何标识符的第一个字符必须是字母。来自JLS section 3.8(强调我的):

  

标识符 Java字母 Java数字的无限长度序列,第一个必须是 em> Java letter

     

[...]

     

“Java letter”是方法Character.isJavaIdentifierStart(int)返回true的字符。

     

“Java字母”包括大写和小写ASCII拉丁字母AZ(\ u0041- \ u005a)和az(\ u0061- \ u007a),并且由于历史原因,ASCII下划线(_或\ u005f)和美元符号($,或\ u0024)。 $符号应仅用于机械生成的源代码,或者很少用于访问旧系统上的预先存在的名称。

不允许使用数字,因此您无法为枚举值12命名。

答案 1 :(得分:1)

数字在Java中作为标识符无效。通常在定义枚举常量时使用uppercase letters

答案 2 :(得分:0)

不,您不能使用数字作为枚举名称。 也许你可以做到

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