java - 如何在枚举中添加特殊字符?

时间:2012-07-12 04:51:50

标签: java enums

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

SpecialCharacterField.java

package bp.enumfield;

public enum SpecialCharacterField {
   +, #;
}

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

请帮忙。提前谢谢。

3 个答案:

答案 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()仅用于“人眼” - 代码中不应该依赖它