你在Java注释中导致错误信息,为什么?

时间:2014-05-27 12:51:04

标签: java unicode

// \u represent unicode sequence
    char c = '\u0045';
    System.out.println(c);

代码只是这么多,eclipse显示以下错误消息

"Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    Invalid unicode

现在,当我从评论中删除\u时,它正常运行,评论中\u的问题是什么?这是一个错误还是有一些关系,因为认为Java应该保留评论。

2 个答案:

答案 0 :(得分:12)

编译器将首先读取您的整个源代码(稍后将忽略该注释),但他无法识别&#34; \ u&#34;,因为它不是有效的unicode-character。< / p>

要修复它,你可以写

// \\u represent unicode sequence (extra backslash for escaping)

// \ u represent unicode sequence (extra whitespace for escaping)

修改
这是因为编译器首先将所有内容转换为unicode。写这个简单的程序

class Ideone
{
    public static void main (String[] args)
    {
        // \u000A System.out.println("Hi");
    }
}

输出您好,因为\u000A代表换行符。 Proof

答案 1 :(得分:5)

评论也在某种程度上得到了解释。 一项简短的研究已经为您的问题产生了以下结果: Unicode in javadoc and comments?