Iのように定義final class Ring
有する:ケース式はstatic final intの定数式でなければなりませんか?
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
プログラムの寿命のために不変である変数を参照:私はまた、次のコードでpublic class MorrisBoard
持ち
を。すべての値は最終値です。
しかし、私はまだ次のエラーを受け取ります:case expressions must be constant expressions
。私はこれで混乱しています - MorrisBoard.RING.OUT
は定数式です。
ここでは何が起こっていますか?
を解決します_compile time constant_、 'RING'は実行時に割り当てられます。 –
FYI: 'final static'の束の代わりに' enum'を使用することを検討してください... –
インスタンスメンバーを持たないクラス、つまり静的メンバーを持たないクラスのインスタンスを作成する必要はありません –