令牌“{”,@在枚举后的这个令牌中预期用于处理2.2.1

时间:2016-04-20 14:08:21

标签: enums syntax-error processing

我创建了一个处理2.2.1的项目,我使用了枚举。 Howerver我打电话给我的枚举Colour.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;
    }
}

2 个答案:

答案 0 :(得分:3)

创建新int数组的语法需要以new int[]

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

时间可以忽略这一点,就是在您声明变量或字段的同时初始化变量或字段时:

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

之后,您需要降低构造函数从public到package-private或private的可见性,然后就可以了。

答案 1 :(得分:2)

您可以使用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;
    }
}