私は次のように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
は定数式です。
ここで何が起こっているのですか?