在评论行上获得错误

时间:2014-07-05 17:51:08

标签: java

  class k{
  public static void main(String[] args) {
   //('\u000d'); 
   }
}

在主要我已经注释掉第3行但仍然得到错误的未关闭字符文字的类k之后,可能是什么原因呢?

3 个答案:

答案 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!!!
}