2014-02-05 147 views
2

i表示行,並且y表示連接4遊戲中的列,我試圖根據用戶選擇的列更改圓的顏色,但此代碼不斷給出錯誤類型不匹配,無法將狀態轉換爲串。Java更改狀態

public enum State{ 
    RED, YELLOW, BLANK; 
} 
+0

郵政變量的聲明,整體誤差,並指定其行吧被提出 – m0skit0

回答

3

究竟作爲錯誤消息說,f應包含字符串,如您的聲明中指出:

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

但你的價值比作State,而你也在努力分配一個State它:

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

您可能希望有State.RED.name()以甲肝e Enum的字符串值。

有關詳細信息,請參閱文檔:Enum Types

0

您嘗試將一個枚舉分配給一個字符串。
嘗試f[i][y]=State.RED.toString()保存它和State.valueOf(f[i][y])以從字符串中獲取枚舉。另一種方法是有一個枚舉數組(只使用搜索,我相信你會發現的東西)

0

你不能直接比較枚舉值和字符串,或將枚舉值分配給一個字符串。但是,您可以枚舉轉換爲字符串,並將其再比較:同樣

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

下一行:

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

或使用'.name()' – Maroun