class k{
public static void main(String[] args) {
//('\u000d');
}
}
在主要我已经注释掉第3行但仍然得到错误的未关闭字符文字的类k之后,可能是什么原因呢?
答案 0 :(得分:12)
在Java编译的早期解析Unicode字符,无论如何\u000d
不是有效的字符。
// The other style comments work.
/*('\u000d'); */
修改强>
\ u000d将转换为换行符,结束您的评论...
//('\u000d');
转换为
//('
') // <-- bare line with ')
这不是有效的字符常量。
答案 1 :(得分:4)
'\u000d'
似乎是换行符。编译器将单行代码视为两行:
//('
');
这就是您收到错误的原因。第二行有一个开头的单引号,但没有一个要匹配的结束。
答案 2 :(得分:3)
它是一个字符文字。 \u000d
表示&#34;换行符&#34;。虽然在评论行中看起来似乎没有任何内容可以处理,但是会发生这种情况:
original : {
//('\u000d');
}
pre-compile : {
//('
'); // <- This is syntax error!!!
}