2016-02-20 236 views
0
public class Constants { 
    public enum Status{ 
     sen(3,"發送中"), 
     suc(8,"成功"), 
     fai(6,"失敗"), 
     ; 
     Integer status; 
     String desc; 
     Status(String desc, Integer status) { 
      this.desc = desc; 
      this.status = status; 
     } 

     public Integer getStatus() { 
      return status; 
     } 

     public void setStatus(Integer status) { 
      this.status = status; 
     } 

     public String getDesc() { 
      return desc; 
     } 

     public void setDesc(String desc) { 
      this.desc = desc; 
     } 
    } 

} 

然後用這種「未閉合的字符串常量」「aftersen(3編譯錯誤」。 如果我刪除變量「遞減」,則錯誤消失。 有人可以幫助我?的Java枚舉編譯錯誤「未閉合的字符串文字」

+0

是你的源代碼文件的編碼你的'javac'期望的是什麼? –

+0

另外,考慮在枚舉常量'fai'之後移除無關的逗號。 –

+2

而且你似乎以錯誤的順序給你的構造函數參數。您的構造函數期望該字符串是第一個。 –

回答

-1

變化:

sen(3,"發送中"), 
    suc(8,"成功"), 
    fai(6,"失敗"), 
    ; 

要:

sen("發送中",3), 
    suc("成功",8), 
    fai("失敗",6); 
+0

這是否解決了編譯錯誤「未閉合的字符串文字」「aftersen(3,」,這是OP的問題? –

+0

試試吧,看看.... – pczeus

+0

如果你想將你的答案分類爲「有用」,它是你可以在答案中解釋這一點,我認爲你的「答案」根本不能解決OP的問題,所以它應該是一個評論,而不是一個答案。 –

3

你必須使用UTF-8或其他東西作爲你的文件編碼......所以我懷疑你的源代碼中的問題是「homoglyphs」。

更具體地說,其中一個雙引號字符不是ASCII雙引號(Unicode 0x0022)。 Java僅將ASCII雙引號字符視爲在String文字中具有重要意義。 「看起來像」雙引號的其他字符只是字符串內容。

另一個答案指出,你有錯誤的順序構造函數參數。這不是導致「未關閉的字符串文字」錯誤的原因。