令牌 "{" , @ 预期在此令牌之后在枚举中处理 2.2.1



我做了一个处理2.2.1的项目,我使用枚举。Howerver 我称我的枚举为 Color.java,我有一个错误:

令牌

"{"上的语法错误,@ 应在此令牌之后。

这是我的代码:

public enum Colour
{   // --> on this line
    RED({0xFF0000, 0xDD0000, 0x990000, 0x660000, 0x330000}),
    GREEN({0x00FF00, 0x00DD00, 0x009900, 0x006600, 0x003300}),
    BLUE({0x0000FF, 0x0000DD, 0x000099, 0x000066, 0x000033});
    private final int[] shades;
    public Colour(int[] shades)
    {
        this.shades = shades;
    }
    public int[] getShades()
    {
        return shades;
    }
}

创建新 int 数组的语法需要从 new int[] 开头:

RED(new int[] {0xFF0000, 0xDD0000, 0x990000, 0x660000, 0x330000}),
//  ^^^^^^^^^

唯一可以省略这种情况的情况是在声明变量或字段的同时对其进行初始化时:

int[] ints = { 1, 2, 3 };

之后,您需要将构造函数的可见性从公共降低到包私有或私有,然后事情就会起作用。

你可以使用 varargs

public enum Colour
{   // --> on this line
    RED(0xFF0000, 0xDD0000, 0x990000, 0x660000, 0x330000),
    GREEN(0x00FF00, 0x00DD00, 0x009900, 0x006600, 0x003300),
    BLUE(0x0000FF, 0x0000DD, 0x000099, 0x000066, 0x000033);
    private final int[] shades;
    Colour(int... shades)
    {
        this.shades = shades;
    }
    public int[] getShades()
    {
        return shades;
    }
}

最新更新