4

次のようなJavaでカード列挙型を作成するにはどうすればよいですか:

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

{"2", "3"...} を試してみました。それも機能していません

4

2 に答える 2

9

JLS (Java 言語仕様)は、次の 2 つの重要な事実を示しています。

  1. Java 列挙型フィールドは有効な識別子である必要があります。

    EnumConstants:
        EnumConstant
        EnumConstants , EnumConstant
    
    EnumConstant:
        Annotations_opt Identifier Arguments_opt ClassBody_opt
    
    Arguments:
        ( ArgumentList_opt )
    
    EnumBodyDeclarations:
        ; ClassBodyDeclarations_opt
    
  2. 識別子の最初の文字は「Java 文字」でなければなりません。

    「Java 文字」には、大文字と小文字の ASCII ラテン文字A-Z( \u0041- \u005a) とa-z( \u0061- \u007a) と、歴史的な理由から、ASCII アンダースコア ( _、または\u005f) とドル記号 ( $、または\u0024) が含まれます。この$文字は、機械的に生成されたソース コードでのみ使用するか、まれに、レガシー システムの既存の名前にアクセスするために使用する必要があります。

これらの制限内で作業する必要があります。

public enum Card {
    Two,
    Three,
    Four,
    Five,
    Six,
    Seven,
    Eight,
    Nine,
    Ten,
    Jack,
    Queen, 
    King,
    Ace;
}
于 2012-12-01T05:34:42.707 に答える
1

有効な識別子を使用してみる必要があります。つまりTWO, THREE, FOUR、2、3、4 はここでは無効です。

于 2012-12-01T05:35:36.220 に答える