如何在Java中声明和使用静态枚举
我在谷歌上搜索了我的问题,但没有找到与我的情况相匹配的相关例子如何在Java中声明和使用静态枚举,java,enums,Java,Enums,我在谷歌上搜索了我的问题,但没有找到与我的情况相匹配的相关例子 public class Game{ static enum Tile { static //Syntax error, insert "Identifier" to complete EnumConstantHeader { DIRT = new Tile("DIRT", 1); //Ca
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;
}
}
}
在我的例子中,我已经声明了如上所述的枚举。但是我收到了很多编译错误,这些错误是我在上面的代码中作为注释插入的。
有谁能给我指出解决这个问题的正确方向吗?我将遵循标准的枚举教程 看一看行星的例子
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()
方法。您不需要自己去做。我将遵循标准的枚举教程
看一看行星的例子
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()
方法。您不需要自己这样做。您缺少了一个磁贴的构造函数。您缺少了磁贴的构造函数