这个问题可能同样适用于具有类似C语言的多行注释的其他语言。这是我遇到的问题。我正在使用Eclipse中的Java代码,我想要注释掉一段代码。但是,有一个包含字符序列“* /”的字符串,Eclipse认为注释应该在那里结束,即使它在字符串中。它给了我很多错误并且无法构建。
/*
... some Java code ...
... "... */ ..." ...
... more Java code ...
*/
Java规范是否与Eclipse对我的多行注释的解释相匹配?我想Java和/或Eclipse会解释这类事情。
答案 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。