你如何比较enum和int?

use*_*882 3 java enums

我试图通过使用枚举来改变颜色,我将枚举与int进行比较,但它不断抛出错误

如何将int与枚举进行比较?这样我就可以改变设置为1的第一列y中的颜色

bob*_*bel 6

只需使用枚举的Enum.ordinal()方法获取从0到X的有序数字,您可以将其与x变量进行比较:

public class Game {
    public enum State {
        BLANK,   // 0
        RED,     // 1
        YELLOW   // 2
    }

    public State getState(int x, int y) {
        y = 1;
        for (x = 5; x > 0; x--) {
            if (x == State.BLANK.ordinal() && y == State.BLANK.ordinal()) {
                return State.RED;
            }
            //return State.BLANK;
        }
        return State.BLANK;
    }
}
Run Code Online (Sandbox Code Playgroud)


Jos*_*yle 5

您必须为枚举分配值。照原样,它试图比较两个不可比的事物。

public class Game {

public enum State{
    RED(1), YELLOW(2), BLANK(0);

    private int val;

    private State(int value){
        val = value;
    }

    public int getValue(){
        return val;
    }
}

public State getState(int x, int y) {
    y=1;
    for (x=5;x>0;x--) {
        if (x== State.BLANK.getValue() && y== State.BLANK.getValue()) {
            return State.RED;
        }
        //return State.BLANK;
    }
    return State.BLANK;
}
}
Run Code Online (Sandbox Code Playgroud)