2008-08-28 5 views
4

Этот вопрос, вероятно, применим также и к другим языкам с C-подобными многострочными комментариями. Вот проблема, с которой я сталкиваюсь. Я работаю с Java-кодом в Eclipse, и я хотел бы прокомментировать блок кода. Тем не менее, есть строка, которая содержит последовательность символов «* /», и Eclipse считает, что комментарий должен заканчиваться там, хотя он находится внутри строки. Это дает мне массу ошибок и не удается построить.У многострочных комментариев в Java для строк?

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

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

ответ

10

Eclipse правильный. В комментарии нет контекста интерпретации (без экранирования и т. Д.). См. JLS §3.7.

1

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

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: */ "; 
0

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

2

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

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

0

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

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