2016-02-20 234 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文字中具有重要意义。 “看起来像”双引号的其他字符只是字符串内容。

另一个答案指出,你有错误的顺序构造函数参数。这不是导致“未关闭的字符串文字”错误的原因。