2

type のいずれかの結果を取得する可能性があるため、この方法で enum を定義しています

public enum Result 
     {
        1, 2,3, 4,5, 6,7, 8
     }


String resultvalue = calculateResult();

    switch (Result .valueOf(resultvalue ))
          {

          }

しかし、 Enum Declaration 自体で Mispalced Constructors というエラーが発生しています。

誰でも私を助けてくれませんか

4

5 に答える 5

7

基本的に、これらは列挙値の有効な識別子ではありません。先頭に文字または _ を付ける必要があります。また、識別子を一意にする必要があります-現在、00104回あります...

それを整理したら、残りはおそらく問題ないはずですが、さらに問題がある場合は、スニペットではなく、短いが完全なプログラムを投稿してください。

于 2012-04-13T13:18:25.257 に答える
2

0001は有効な Java 識別子ではありません。Java 識別子は、数字で開始することはできません。

于 2012-04-13T13:18:46.110 に答える
0

あなたが何を達成したいのか、なぜ重複しているのかわかりませんが。そのようなもの (おそらく String の代わりに int を使用) が機能するはずです。

public enum Result {
    One( "0001"),
    Two( "0010")
    ...

    private String val;

    private Result(String val) {
        this.val = val;
    }
}
于 2012-04-13T13:21:26.153 に答える
0

あなたが達成しようとしていることは何ですか?もしあなたが必要ならば:

  1. 文字列から整数を解析し、次に
  2. 特定の値のセットからのものであることを確認し、最後に
  3. その値をオンにし、

その場合、列挙型は必要ありません。Integer.parseInt()Set.contains()、およびでそれを行うだけですswitch

于 2012-04-13T13:54:27.197 に答える
0

計算結果が文字列を返す理由がわかりません。ここではintを返しますが...

String resultvalue = calculateResult();
switch (Integer.parseInt(resultvalue)) {
   case 0b0001:

   case 0b0010:

   case 0b0110:

   case 0b1010:

   case 0b1100:

}
于 2012-04-13T13:23:54.123 に答える