枚举中包含字符串值的int值

时间:2012-12-01 05:32:13

标签: java enums

如何使用类似于Java的卡片Enum:

public enum Card {2, 3, 4, 5, 6, 7, 8, 9, 10, Jack, Queen, King, Ace};

我试过{“2”,“3”......}。它不起作用

2 个答案:

答案 0 :(得分:9)

The JLS (Java Language Specification)告诉我们两个重要的事实:

  1. Java enum fields must be valid identifiers.

    EnumConstants:
        EnumConstant
        EnumConstants , EnumConstant
    
    EnumConstant:
        Annotations_opt Identifier Arguments_opt ClassBody_opt
    
    Arguments:
        ( ArgumentList_opt )
    
    EnumBodyDeclarations:
        ; ClassBodyDeclarations_opt
    
  2. The first character of an identifier must be a "Java letter."

      

    " Java字母"包括大写和小写ASCII拉丁字母A-Z\u0041 - \u005a)和a-z\u0061 - \u007a),以及历史原因,ASCII下划线(_\u005f)和美元符号($\u0024)。 $字符只能用于机械生成的源代码,或者很少用于访问旧系统上预先存在的名称。

  3. 您必须在这些限制范围内工作。

    public enum Card {
        Two,
        Three,
        Four,
        Five,
        Six,
        Seven,
        Eight,
        Nine,
        Ten,
        Jack,
        Queen, 
        King,
        Ace;
    }
    

答案 1 :(得分:1)

您必须尝试使用​​有效的标识符,即TWO, THREE, FOUR,2,3,4在此无效。