1

これがバグなのか、それとも私が少し頭がおかしくなっているのかわからない.. Eclipse jpage Scrapbook で列挙型の簡単なテストをしようとしています (JDK 1.7.0_02、Win XP 64 ビット、Eclipse Juno を使用)

class A {
    enum Month {JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC}
}
A a = new A();

これを実行しようとすると、次のようになります。

メンバ enum Month は、最上位クラスまたはインターフェイス内でのみ定義できます

そして、列挙型をクラス定義の外に移動すると、これが起こります。

enum Month {JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC}
Month.valueOf("JAN");

上記のエラーは次のとおりです。

メンバ enum Month は、最上位クラスまたはインターフェイス内でのみ定義できます

月を解決できません

4

2 に答える 2

1

これを行う唯一の方法は、列挙型自体をjpageから新しいクラスに移動することだと思います。だから私はクラスを次のようにします:

package test;
public class Test {
   public enum Month {
      JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC;
   };
}

次にjpageで:

  1. 右クリックして「インポートの設定」を選択します
  2. [パッケージの追加] をクリックし、テストパッケージを入力/選択します。

次に、私の jpage には次のコードのみが含まれます。

Test.Month.valueOf("JAN");
于 2013-02-27T07:25:57.580 に答える
0

ちょっとばかげた言い方をして申し訳ありませんが、enum をクラス A のパブリック メンバーとして宣言するべきではないでしょうか。クラス内の列挙は本質的に静的ですが、パブリックではありません。最初の例で、パブリックとして宣言しようとするとどうなりますか?

于 2014-04-05T15:46:35.803 に答える