-2

アプリのコードを書いています。しかし、次のエラーが発生します。

スクリーンショットを掲載しています。エラーを解決するのを手伝ってください。

ここに画像の説明を入力

エラーは、列挙型を使用する部分にあります。

public static enum Mode
  {
    static
    {
      CORRECT = new Mode("CORRECT", 2);
      Mode[] arrayOfMode = new Mode[3];
      arrayOfMode[0] = NO_ASYNC_TASK;
      arrayOfMode[1] = NO_DOWNLOADED_DRAWABLE;
      arrayOfMode[2] = CORRECT;
    }
  }

答えてくれてありがとう。

4

5 に答える 5

11

列挙型を次のように宣言します

public static enum MODE
{
    NO_ASYNC_TASK,
    NO_DOWNLOADED_DRAWABLE,
    CORRECT
};

次の方法で列挙型を使用します

MODE.NO_ASYNC_TASK
于 2012-12-27T07:19:41.907 に答える
3

あなたの定義にはいくつかの拡張が必要です。まず、列挙を静的として定義する必要はありません。また、すべての列挙を他のクラスではなく、特定の独立したクラスに配置する必要があります。これにより、ソリューションがより整理されます。さらに、「static」は言語の予約済みキーワードであるため、内部ブロックに static を使用する必要はありません。

次のように、整数値を使用して、または使用せずに列挙を定義できます。

public enum Mode
{
    NO_ASYNC_TASK,
    NO_DOWNLOADED_DRAWABLE,
    CORRECT
}

また

public enum Mode
{
    NO_ASYNC_TASK(1),
    NO_DOWNLOADED_DRAWABLE(2),
    CORRECT(3);

    private final int id;
    Mode(int id) { this.id = id; }
    public int getValue() { return id; }
}
于 2012-12-27T07:25:32.390 に答える
2

static列挙型定義から修飾子を削除するか、他のクラス内で列挙型を取得します

于 2012-12-27T07:22:03.257 に答える
1

同じクラスの enum 宣言から「public」を削除します。これは、1 つの Java ファイルに public クラスと「static」が 1 つだけ存在する必要があるためです。

于 2012-12-27T07:22:06.177 に答える
1

列挙型は通常、定数を使用するときに使用され、定数の型を提供するように機能します。

言う代わりに:

public static final int MALE = 1;
public static final int FEMALE = 2;

あなたは言うことができます

  public enum Gender {
     MALE, FEMALE;
   } 

および として参照しGender.MALEますGender.FEMALE

列挙型がない場合、メソッドは (上記の例では)setGenderを受け入れる必要がintあり、1 または 2 以外のものを渡すことができます。その中のコードは、渡された int が定数にマップされているかどうかを確認する必要がありますEnums。そのような状況での簡単な方法。

于 2012-12-27T07:23:08.000 に答える