【问题标题】:Getting error on commented line在注释行上出现错误
【发布时间】:2014-07-05 17:51:08
【问题描述】:
  class k{
  public static void main(String[] args) {
   //('\u000d'); 
   }
}

在 main 之后的 k 类中,我注释掉了第 3 行,但仍然收到错误未闭合字符文字,这可能是什么原因?

【问题讨论】:

标签: java


【解决方案1】:

Unicode 字符在 Java 编译的早期就被解析了,无论如何\u000d 不是一个有效的字符。

// The other style comments work.
/*('\u000d'); */

编辑

\u000d 转换为换行符,结束您的评论...

//('\u000d');

转换成

    //('
') // <-- bare line with ')

这不是一个有效的字符常量。

【讨论】:

  • 您能解释一下“\u000d 不是有效字符”是什么意思吗?
  • @Code-Apprentice 编辑添加更多解释
【解决方案2】:

看来'\u000d' 是换行符。编译器将单行代码视为两行:

//('
');

这就是您收到错误的原因。第二行有一个单引号,但没有匹配的结束单引号。

【讨论】:

    【解决方案3】:

    这是一个字符文字。 \u000d 表示“换行符”。虽然在您看来,在注释行中似乎没有处理任何内容,但会发生这种情况:

    original : {
      //('\u000d');
    }
    
    pre-compile : {
      //('
    '); // <- This is syntax error!!!
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-17
      • 1970-01-01
      • 1970-01-01
      • 2022-12-14
      • 2014-09-04
      • 1970-01-01
      • 1970-01-01
      • 2012-07-08
      相关资源
      最近更新 更多