3

次のようにenum関数を宣言しました

public static enum SHAPE


{
    static
    {
      LINE = new SHAPE("LINE", 3);
      CIRCLE = new SHAPE("CIRCLE", 4);
      TEXT = new SHAPE("TEXT", 5);
      SHAPE[] arrayOfSHAPE = new SHAPE[6];
      arrayOfSHAPE[0] = DRAW;
      arrayOfSHAPE[1] = SQUARE;
      arrayOfSHAPE[2] = TRIANGLE;
      arrayOfSHAPE[3] = LINE;
      arrayOfSHAPE[4] = CIRCLE;
      arrayOfSHAPE[5] = TEXT;
    }
  }

しかし、私は得ています

Syntax error, insert "}" to complete Block at line4 and getting Syntax error, insert "EnumBody" to complete EnumDeclaration at line1.

この列挙型の宣言を手伝ってください。前もって感謝します。

4

5 に答える 5

3

Javaの列挙型は次のとおりです。

public enum SHAPE {

      LINE("LINE", 3),
      CIRCLE("CIRCLE", 4),
      TEXT("TEXT", 5);

      private String type;
      private Integer id;

      SHAPE(String type,Integer id){
        this.type= type;
        this.id = id;  
      }    

      // Getters for type and id 


}
于 2013-07-23T06:31:24.473 に答える
1

まず、あなたが何をしようとしているのかわかりません。しかし、enum宣言によると、インスタンスを指定していません (空です)。

public enum SHAPE
{
;//define a seperator where one declares instances.
static
{
  SHAPE LINE = new SHAPE("LINE", 3);
  SHAPE CIRCLE = new SHAPE("CIRCLE", 4);
  SHAPE TEXT = new SHAPE("TEXT", 5);
  SHAPE[] arrayOfSHAPE = new SHAPE[6];
  arrayOfSHAPE[0] = DRAW;
  arrayOfSHAPE[1] = SQUARE;
  arrayOfSHAPE[2] = TRIANGLE;
  arrayOfSHAPE[3] = LINE;
  arrayOfSHAPE[4] = CIRCLE;
  arrayOfSHAPE[5] = TEXT;
 }
}

また、enumクラス宣言を静的にすることはできません。あなたはセルジオが言ったようにすべきです

于 2013-07-23T06:36:37.710 に答える
1
    public enum SHAPE {


    LINE("LINE", 3),
    CIRCLE("CIRCLE", 4),
    TEXT("TEXT", 5);

    public final String shapeName;
    public final int shapeValue;
    public static final SHAPE[] arrayOfShap = values();

    static {
        // This is used to do some operations on enum generally like creating a map of this enums. 
    }

    SHAPE(String name, int value){
        this.shapeName = name;
        this.shapeValue = value;
    }

    // Here one can define static methods to get enum values from arrays, map etc....
}

必要なソリューションは、これまたは類似のものです。

詳細については、以下のリンクを確認してください...

Java の例

&列挙型の静的ブロックの場合

于 2013-07-23T07:06:12.300 に答える