5

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

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

Java 规范是否与 Eclipse 对我的多行注释的解释相匹配?我想认为 Java 和/或 Eclipse 会解决这类问题。

4

6 回答 6

9

日食是正确的。评论中没有解释上下文(没有转义等)。参见JLS §3.7

于 2008-08-28T17:54:34.947 回答
2

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

或者,如果您真的想对所选内容进行块注释,请使用 Ctrl+Shift+/ 组合。它将检测您选择中的块注释。然而,撤消这比单行注释更难。

于 2008-08-28T18:15:36.473 回答
1

是的,我将代码注释掉只是为了进行快速测试。我已经通过另一种方式注释代码来测试我需要什么;我只是对 Java 和/或 Eclipse 的奇怪错误功能感到好奇。

于 2008-08-28T17:56:10.857 回答
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: */ ";
于 2008-08-28T17:58:06.187 回答
0

只做一个“批量”多行注释可能会有所帮助,以便它用“//”注释每一行。在 Idea 中是 Ctrl+"/" 用于注释和取消注释选定的行,Eclipse 应该有类似的功能。

于 2008-08-28T17:59:12.237 回答
0

我经常仅//用于内联注释,并且/* */仅用于以您的方式注释掉大块。

很多开发人员仍然会使用 /* */ 进行内联注释,因为这是他们所熟悉的,但他们都会遇到这样的问题,在 C 中这并不重要,因为你可以 #if 0东西了。

于 2008-09-27T16:06:11.257 回答