Java 在枚举中添加带有特殊字符的日期

Java 在枚举中添加带有特殊字符的日期,java,enums,Java,Enums,我尝试使用以下特殊字符枚举日期: public enum Myenum implements enumTypes { TO, '2015-01', '2015-02' } 但我有一个错误: 2015-01和2015-02中的无效字符常量 我想知道如何使用特殊字符枚举。您不能。Java枚举值必须遵循Java标识符的规则,如中所述: 标识符是Java字母和Java字符的无限长序列 数字,其中第一个必须是Java字母 标识符: IdentifierChars,但不是关键字或BooleanLi

我尝试使用以下特殊字符枚举日期:

public enum Myenum implements enumTypes
{
    TO, '2015-01', '2015-02'
}
但我有一个错误:
2015-01和
2015-02中的
无效字符常量


我想知道如何使用特殊字符枚举。

您不能。Java枚举值必须遵循Java标识符的规则,如中所述:

标识符是Java字母和Java字符的无限长序列 数字,其中第一个必须是Java字母

标识符:
IdentifierChars,但不是关键字或BooleanLiteral或NullLiteral
识别卡:
JavaLetter{JavaLetterOrdGit}
JavaLetter:
作为“Java字母”的任何Unicode字符
JavaLetterOrdGit:
“Java字母或数字”的任何Unicode字符

这意味着不允许使用单引号(
)或减号(
-
)(以及许多其他非字母或数字的字符),标识符也不能以数字开头。

您不能。Java枚举值必须遵循Java标识符的规则,如中所述:

标识符是Java字母和Java字符的无限长序列 数字,其中第一个必须是Java字母

标识符:
IdentifierChars,但不是关键字或BooleanLiteral或NullLiteral
识别卡:
JavaLetter{JavaLetterOrdGit}
JavaLetter:
作为“Java字母”的任何Unicode字符
JavaLetterOrdGit:
“Java字母或数字”的任何Unicode字符

这意味着不允许使用单引号(
)或减号(
-
)(以及许多其他非字母或数字的字符),标识符也不能以数字开头。

提示:类型的“TO”是什么并不重要……这不是字符:“2015-01”@robjwilkins TO是字符串,但我的日期有问题。我试着把它作为字符串放在“”中,但同样的问题你不能。枚举名称必须是有效的Java标识符。因此,它们不能以引号或数字开头。@JBNizet我可以枚举名称。我对
TO
没有问题,但它是针对
2015-01
的。这是一个字符串,但我遇到了特殊字符错误,请再次阅读我的评论。读马克的答案。枚举名称不是字符串(顺便说一句,在Java中,字符串文本被双引号包围)。它们必须是有效的Java标识符。不是任意字符串。有效的Java标识符。就像一个字段名。顺便说一句,它们是字段名。例如,正确的名称应该是2015年1月。提示:类型的“TO”是什么并不重要……这不是字符:“2015-01”@robjwilkins TO是字符串,但我的日期有问题。我试着把它作为字符串放在“”中,但同样的问题你不能。枚举名称必须是有效的Java标识符。因此,它们不能以引号或数字开头。@JBNizet我可以枚举名称。我对
TO
没有问题,但它是针对
2015-01
的。这是一个字符串,但我遇到了特殊字符错误,请再次阅读我的评论。读马克的答案。枚举名称不是字符串(顺便说一句,在Java中,字符串文本被双引号包围)。它们必须是有效的Java标识符。不是任意字符串。有效的Java标识符。就像一个字段名。顺便说一句,它们是字段名。例如,正确的名称应该是2015年1月\日。@MAYA双引号或标识符中不允许使用,因为它们既不是字母也不是字母digit@MAYA标识符中也不允许使用双引号或双引号,因为它们既不是字母也不是数字