由于不可避免的情况,我需要创建一个类似下面的枚举类,
public enum Region
{
1("Region1"),
2("Region2");
}
但是我收到了错误"令牌上的语法错误' 1',标识符预期"。此枚举用于jsp中的选项标记。如果使用字符串而不是1,它工作正常,枚举不允许数字作为键吗?
答案 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)。 $符号应仅用于机械生成的源代码,或者很少用于访问旧系统上的预先存在的名称。
不允许使用数字,因此您无法为枚举值1
和2
命名。
答案 1 :(得分:1)
数字在Java中作为标识符无效。通常在定义枚举常量时使用uppercase letters
答案 2 :(得分:0)
不,您不能使用数字作为枚举名称。 也许你可以做到
public enum Region {
ONE("region1"),
TWO("region2");
}