Java改变状态

时间:2014-02-05 12:25:50

标签: java

i表示行,y表示连接4游戏中的列,我尝试根据用户选择的列更改圆的颜色,但此代码不断给出错误类型mismatch无法将状态转换为字符串。

public enum State{
    RED, YELLOW, BLANK;
}

3 个答案:

答案 0 :(得分:3)

完全正如错误消息所示,f应包含字符串,正如您的声明所述:

public static void dropRedCounter (String[][] f)
                                   ↑    

但您将其值与State进行比较,并且您还尝试为其分配State

f[i][y] = State.RED;

您可能希望拥有State.RED.name()以获得枚举的字符串值。

有关详细信息,请参阅文档:Enum Types

答案 1 :(得分:0)

您尝试将字符串分配给字符串 尝试f[i][y]=State.RED.toString()保存,State.valueOf(f[i][y])从字符串中获取枚举。另一种方法是拥有一个枚举数组(只需使用搜索,我相信你会找到一些东西)

答案 2 :(得分:0)

您无法直接比较枚举值和字符串,也无法为字符串指定枚举值。但是,您可以将枚举转换为字符串并比较它们:

if (f[i][y].equals(String.valueOf(State.BLANK)) {

同样适用于下一行:

f[i][y] = String.valueOf(State.RED);