0

私の質問についてSOをグーグルで検索しましたが、私の状況に一致する関連する例が見つかりません。

public class Game{
        static enum Tile
              {
                static //Syntax error, insert "Identifier" to complete EnumConstantHeader
                {
                  DIRT = new Tile("DIRT", 1); //Cannot instantiate the type Game.Tile
                  GRASS = new Tile("GRASS", 2);
                  ROCK = new Tile("ROCK", 3);
                  EXIT = new Tile("EXIT", 4);
                  PLAYER = new Tile("PLAYER", 5);
                  PLAYER_LEFT = new Tile("PLAYER_LEFT", 6);
                  PLAYER_RIGHT = new Tile("PLAYER_RIGHT", 7);
                 //For all above declared fields, I am getting this compile time errors :
                 /*
                  Multiple markers at this line
                     - Cannot instantiate the type 
                       Game.Tile
                      - DIRT cannot be resolved to a 
                       variable
                 */
                  Tile[] arrayOfTile = new Tile[8];
                  arrayOfTile[0] = EMPTY;
                  arrayOfTile[1] = DIRT;
                  arrayOfTile[2] = GRASS;
                  arrayOfTile[3] = ROCK;
                  arrayOfTile[4] = EXIT;
                  arrayOfTile[5] = PLAYER;
                  arrayOfTile[6] = PLAYER_LEFT;
                  arrayOfTile[7] = PLAYER_RIGHT;
                  $VALUES = arrayOfTile;
                }
              }
}

私の場合、上記のように列挙型を宣言しました。しかし、上記のコードにコメントとして挿入した多くのコンパイル エラーが表示されます。これを解決するために誰かが私を正しい方向に向けることができますか?

4

2 に答える 2

5

標準の列挙型チュートリアルに従います

http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html

プラネットの例を見てください

public enum Planet {
    MERCURY (3.303e+23, 2.4397e6),
    VENUS   (4.869e+24, 6.0518e6),
    EARTH   (5.976e+24, 6.37814e6),
    MARS    (6.421e+23, 3.3972e6),
    JUPITER (1.9e+27,   7.1492e7),
    SATURN  (5.688e+26, 6.0268e7),
    URANUS  (8.686e+25, 2.5559e7),
    NEPTUNE (1.024e+26, 2.4746e7);

    private final double mass;   // in kilograms
    private final double radius; // in meters
    Planet(double mass, double radius) {
        this.mass = mass;
        this.radius = radius;
    }

values()あなたのために定義された方法があります。自分でそれを行う必要はありません。

于 2013-08-08T07:03:21.663 に答える
0

タイルのコンストラクターがありません

于 2013-08-08T07:08:16.277 に答える