Java多行注释是否占字符串?

时间:2008-08-28 17:47:57

标签: java eclipse comments

这个问题可能同样适用于具有类似C语言的多行注释的其他语言。这是我遇到的问题。我正在使用Eclipse中的Java代码,我想要注释掉一段代码。但是,有一个包含字符序列“* /”的字符串,Eclipse认为注释应该在那里结束,即使它在字符串中。它给了我很多错误并且无法构建。

/*
   ... some Java code ...
   ... "... */ ..." ...
   ... more Java code ...
*/

Java规范是否与Eclipse对我的多行注释的解释相匹配?我想Java和/或Eclipse会解释这类事情。

6 个答案:

答案 0 :(得分:9)

Eclipse是正确的。注释中没有解释上下文(没有转义等)。请参阅JLS §3.7

答案 1 :(得分:2)

在Eclipse中,您可以突出显示要注释掉的源代码部分,并使用Ctrl + /对突出显示部分中的每一行进行单行注释 - 在行的开头添加“//”。 / p>

或者,如果您真的想要阻止评论选择,请使用Ctrl + Shift + /组合。它将检测您选择的块注释。但是,撤消此操作比单行注释更难。

答案 2 :(得分:1)

是的,我正在评论代码,只是为了进行快速测试。我已经通过另一种方式评论代码来测试我需要的东西;我只是对Java和/或Eclipse的奇怪错误感到好奇。

答案 3 :(得分:0)

一个简单的测试表明Eclipse是正确的:

public class Test {
  public static final void main(String[] args) throws Exception {
    String s = "This is the original string.";
    /* This is commented out.
    s = "This is the end of a comment: */ ";
    */
    System.out.println(s);
  }
}

无法编译:

Test.java:5: unclosed string literal
    s = "This is the end of a comment: */ ";

答案 4 :(得分:0)

我可能会帮助您执行“批处理”多行注释,以便用“//”对每行进行注释。在Idea中使用Ctrl +“/”来评论和取消注释所选行,Eclipse应具有类似的功能。

答案 5 :(得分:0)

我经常只使用//进行内联提交,并且仅使用/* */以您的方式注释掉大块。

许多开发人员仍然会使用/ * * /进行内联评论,因为这是他们所熟悉的,但是他们都会遇到类似这样的问题,在C中它没那么重要,因为你可以#如果你的东西是0。