我这里有问题。我创建了SpecialCharacterField.java - 一个将列出一些特殊字符的枚举类。
SpecialCharacterField.java
package bp.enumfield;
public enum SpecialCharacterField {
+, #;
}
在我的日食中:public enum SpecialCharacterField{
有一个错误:Syntax error, insert "EnumBody" to complete EnumDeclaration
请帮忙。提前谢谢。
答案 0 :(得分:9)
做这样的事,
public enum SpecialCharacterField{
PLUS("+"),
HASH("#");
private String value;
private SpecialCharacterField(String value)
{
this.value = value;
}
public String toString()
{
return this.value; //This will return , # or +
}
}
答案 1 :(得分:5)
这些字符不能是Java语言中标识符的一部分。请注意,JVM本身不会施加此类限制(仅限./;并且[已被阻止]),因此如果直接编写字节码,则可以使用这样的名称。然而,这通常不是一种理想的方法。
答案 2 :(得分:3)
枚举可以像常规类一样拥有字段和getter。
public enum SpecialCharacterField{
Plus('+'),
Hash('#');
private final char character;
private SpecialCharacterField(char character) {
this.character = character;
}
public char getCharacter() {
return character;
}
}
注意:避免覆盖toString()
- 这样做是一种反模式:toString()
仅用于“人眼” - 代码中不应该依赖它