[解決済み] static final int の場合、case 式は定数式でなければならない?
2022-03-12 21:30:22
質問
私は
final class Ring
として定義されています。
final class Ring {
public static final int OUT = 3;
public static final int MID = 2;
public static final int IN = 1;
}
また、私は
public class MorrisBoard
を以下のコードで記述してください。
public class MorrisBoard {
public static final Ring RING = new Ring();
private boolean checkMillBy(int ring, int x, int y) {
switch(ring) {
case MorrisBoard.RING.OUT:
//...
case MorrisBoard.RING.MID: //etc.
//...
}
return false;
}
MorrisBoard.RING.OUT
は、プログラムの有効期間中不変の変数を参照します。すべての値は最終的なものです。
しかし、それでも以下のようなエラーが発生します。
case expressions must be constant expressions
. 私はこれに困惑しています - 。
MorrisBoard.RING.OUT
は定数表現です。
どうなっているんだ?
解決方法は?
交換する
case MorrisBoard.RING.OUT:
と
case Ring.OUT:
つまり、これはコンパイル時に決定される定数となります。
仕様 前景 スイッチラベルは、次のようなものでなければなりません。
-
case
に続いて、定数式 -
case
に続いて、enum 値の名前 -
または
default
有効な定数表現とみなされるのは 仕様書では以下のように記述されています。 . かなり限定的です。
関連
-
[解決済み] java.sql.SQLException: ユーザー 'root'@'localhost' (using password: YES) のためのアクセスが拒否されました。
-
[解決済み】"実引数リストと形式引数リストの長さが異なる"
-
[解決済み】StringUtils.isBlank() vs String.isEmpty()
-
[解決済み】-XX:MaxPermSizeは何をするのですか?
-
[解決済み】java 'jar'が内部コマンドまたは外部コマンドとして認識されない。
-
[解決済み】Gradleがtools.jarを見つけ出さない
-
[解決済み】Java: GZIPInputStreamの作成に失敗しました。GZIP形式ではありません
-
[解決済み] Javaリフレクションを用いた静的なプライベートfinalフィールドの変更
-
[解決済み】「static final Logger」は大文字で宣言する必要がありますか?
-
[解決済み] switch case文のエラー: case式は定数式でなければならない
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】リンクリストの負の値の数でnegativeCntrを代入する
-
[解決済み】StringUtils.isBlank() vs String.isEmpty()
-
[解決済み】 java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver [重複]。
-
[解決済み】Javaで無限大を実装する方法とは?
-
[解決済み】java 'jar'が内部コマンドまたは外部コマンドとして認識されない。
-
[解決済み】ソースルート外のJavaファイル intelliJ
-
[解決済み] java.sql.SQLException を取得しました。ResultSet が終了した後の操作は許可されません。
-
[解決済み】Javaの".class expected "について
-
[解決済み] SQLエラー。0, SQLState: 08S01 通信リンクの失敗 [重複]。
-
[解決済み】フォルダに書き込もうとすると「java.nio.file.AccessDeniedException」が発生する件