Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

switch文でのコンパイルエラーについて

以下のコードをコンパイルしようとすると、
以下のエラーが発生します。なぜですか?
ColorTest.java:11: 定数式が必要です。
                        case BLACK:
                             ^
ColorTest.java:13: 定数式が必要です。
                        case WHITE:

=== 以下コード
import java.awt.Color;

public class ColorTest{
    
    private static final int BLACK = Color.BLACK.getRGB();
    private static final int WHITE = Color.WHITE.getRGB();
    
    private static Color getColor(int rgb){
        switch(rgb){
            case BLACK:
                return Color.BLACK;
            case WHITE:
                return Color.WHITE;
        }
        return new Color(rgb);
    }
}

4

回答

9796

閲覧

4件の回答

評価

0

intの rgbという変数を受け取って、switchを使って
処理を分けようとしているのに、
BLACKもWHITEも何処にも宣言されていないし、
型も何か判らないからおこられているのですよ。

評価

0

定数じゃないとだめだったんですね。
private static final int BLACK = 100;
private static final int WHITE = 101;
自己解決しました。

評価

0

>intの rgbという変数を受け取って、switchを使って
処理を分けようとしているのに、
>BLACKもWHITEも何処にも宣言されていないし、
>型も何か判らないからおこられているのですよ。
↑これは違いますよ。

評価

0

ぁ、コピペミスしてました(・ェ・;)

失礼しました。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。