Учитывают ли многострочные комментарии Java строки? - PullRequest
5 голосов
/ 28 августа 2008

Этот вопрос, вероятно, в равной степени относится и к другим языкам с многострочными комментариями, подобными Си. Вот проблема, с которой я сталкиваюсь. Я работаю с кодом Java в Eclipse, и я хотел закомментировать блок кода. Однако есть строка, содержащая последовательность символов "* /", и Eclipse считает, что комментарий должен заканчиваться там, даже если он находится внутри строки. Он дает мне массу ошибок и не в состоянии построить.

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

Совпадает ли спецификация Java с интерпретацией Eclipse моего многострочного комментария? Я хотел бы думать, что Java и / или Eclipse будут учитывать такие вещи.

Ответы [ 6 ]

9 голосов
/ 28 августа 2008

Затмение верно. Внутри комментария нет контекста интерпретации (без экранирования и т. Д.). См. JLS §3.7 .

2 голосов
/ 28 августа 2008

В Eclipse вы можете выделить часть исходного кода, которую вы хотите закомментировать, и использовать Ctrl + / для однострочного комментария в каждой строке выделенного раздела - в начале строк ставится «//». 1001 *

Или, если вы действительно хотите заблокировать комментарий, используйте комбинацию Ctrl + Shift + /. Он обнаружит блок комментариев в вашем выборе. Однако отменить это сложнее, чем однострочные комментарии.

1 голос
/ 28 августа 2008

Да, я комментирую код только для быстрого тестирования. Я уже проверил то, что мне нужно, закомментировав код другим способом; Мне просто было любопытно, что, по-видимому, является странной ошибкой Java и / или Eclipse.

0 голосов
/ 27 сентября 2008

Я часто использую только // для встроенных комментариев и /* */ только для комментирования больших блоков, как у вас.

Многие разработчики все еще будут использовать / * * / для встроенных комментариев, потому что это то, с чем они знакомы, но все они сталкиваются с такими проблемами, как в C, это не так важно, потому что вы можете если 0 - прочь.

0 голосов
/ 28 августа 2008

Мне может быть полезно просто сделать «пакетный» многострочный комментарий, чтобы он комментировал каждую строку с помощью «//». Это Ctrl + "/" в Idea для комментирования и раскомментирования выбранных строк, Eclipse должен иметь похожую функцию.

0 голосов
/ 28 августа 2008

Простой тест показывает, что 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: */ ";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...