Java更改状态
Java更改状态,java,Java,i表示行,y表示列在connect 4游戏中,我试图根据用户选择的列更改圆圈的颜色,但此代码不断给出错误类型不匹配无法将状态转换为字符串 public enum State{ RED, YELLOW, BLANK; } 正如错误消息所说,f应该包含字符串,正如您的声明所述: public static void dropRedCounter (String[][] f) ↑ 但您正在将其值与状态进行比较,并
i
表示行,y
表示列在connect 4游戏中,我试图根据用户选择的列更改圆圈的颜色,但此代码不断给出错误类型不匹配无法将状态转换为字符串
public enum State{
RED, YELLOW, BLANK;
}
正如错误消息所说,f
应该包含字符串,正如您的声明所述:
public static void dropRedCounter (String[][] f)
↑
但您正在将其值与状态
进行比较,并且还尝试将状态
分配给它:
f[i][y] = State.RED;
您可能需要使用State.RED.name()
,以获得枚举的字符串值
有关更多详细信息,请参阅文档:。您尝试将枚举分配给字符串。
尝试
f[i][y]=State.RED.toString()
保存它,并State.valueOf(f[i][y])
从字符串获取枚举。另一种方法是使用枚举数组(只需使用搜索,我相信您会找到一些内容)您不能直接比较枚举值和字符串,也不能将枚举值分配给字符串。但是,您可以将枚举转换为字符串,然后进行比较:
if (f[i][y].equals(String.valueOf(State.BLANK)) {
下一行也是如此:
f[i][y] = String.valueOf(State.RED);
发布变量的声明、整个错误,并指定引发该错误的行