8

我这里有问题。我创建了 SpecialCharacterField.java - 一个列出一些特殊字符的枚举类。

SpecialCharacterField.java

package bp.enumfield;

public enum SpecialCharacterField {
   +, #;
}

在我的日食线上:public enum SpecialCharacterField{有一个错误说: Syntax error, insert "EnumBody" to complete EnumDeclaration

请帮忙。提前致谢。

4

3 回答 3

11

做这样的事情,

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 +
   }
}
于 2012-07-12T05:00:39.817 回答
5

这些字符不能是 Java 语言中标识符的一部分。请注意,JVM 本身没有施加此类限制(仅 ./; 和 [ 被禁止),因此如果您直接编写字节码,则可以使用类似的名称。然而,这通常不是理想的方法。

于 2012-07-12T04:56:58.393 回答
3

枚举可以像普通类一样有字段和吸气剂。

public enum SpecialCharacterField{
   Plus('+'),
   Hash('#');

   private final char character;
   private SpecialCharacterField(char character) {
      this.character = character;
   }

   public char getCharacter() {
      return character;
   }
}

注意:避免覆盖toString()- 这样做是一种反模式:toString()仅适用于“人眼” - 不应在代码中依赖它。

于 2012-07-12T05:47:12.283 回答