2016-04-20 19 views
1

Ich habe ein Projekt mit der Verarbeitung 2.2.1 gemacht und ich verwende eine enum. Howerver ich meine Enum Colour.java genannt, habe ich einen Fehler bekommen: für die Schaffung neuer int ArraysToken "{", @ erwartet nach diesem Token in Enum für die Verarbeitung 2.2.1

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; 
    } 
} 

Antwort

3

Die Syntax muss beginnen mit new int[]:

Syntax error on token "{", @ expected after this token.

Hier mein Code

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

die nur Mal, wenn Sie diesen Schritt auslassen kann, ist, wenn Sie eine Variable oder ein Feld zur gleichen Zeit zu initialisieren, dass Sie es erklären:

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

Danach müssen Sie die Sichtbarkeit des Konstruktors von öffentlichen auf Paket-private oder private reduzieren, und dann wird es funktionieren.

2

Sie können 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; 
    } 
} 
Verwandte Themen