Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java更改状态_Java - Fatal编程技术网

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);

发布变量的声明、整个错误,并指定引发该错误的行