2008-08-28 7 views
4

Diese Frage würde wahrscheinlich auch für andere Sprachen mit C-ähnlichen mehrzeiligen Kommentaren gelten. Hier ist das Problem, auf das ich stoße. Ich arbeite mit Java-Code in Eclipse und wollte einen Code-Code auskommentieren. Es gibt jedoch eine Zeichenfolge, die die Zeichenfolge "* /" enthält, und Eclipse denkt, dass der Kommentar dort enden sollte, obwohl er in einer Zeichenfolge enthalten ist. Es gibt mir eine Menge Fehler und kann nicht gebaut werden.Haben Java-Kommentare mit mehreren Zeilen Zeichenfolgen?

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

Passt die Java-Spezifikation zu Eclipses Interpretation meines mehrzeiligen Kommentars? Ich würde gerne denken, dass Java und/oder Eclipse für so etwas verantwortlich sind.

Antwort

10

Eclipse ist korrekt. In einem Kommentar gibt es keinen Interpretationskontext (kein Escaping, usw.). Siehe JLS §3.7.

1

Ja, ich notiere den Code, nur um einen schnellen Test zu machen. Ich habe bereits getestet, was ich brauchte, indem ich den Code auf eine andere Art kommentierte; Ich war nur neugierig auf etwas, das ein merkwürdiges Fehlverhalten von Java und/oder Eclipse zu sein scheint.

0

Ein einfacher Test zeigt Eclipse-korrekt ist:

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); 
    } 
} 

Diese mit kompilieren schlägt fehl:

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

Ich kann hilfreich sein, um einen Kommentar zu „Batch“ mehrzeiligen nur tun, so dass es jeder kommentiert Linie mit "//". Es ist Strg + "/" in Idea zum Kommentieren und Auskommentieren der ausgewählten Zeilen, Eclipse sollte eine ähnliche Funktion haben.

2

In Eclipse können Sie den Teil des Quellcodes, den Sie auskommentieren möchten, markieren und den Befehl Strg +/für einzeiligen Kommentar jede Zeile im markierten Abschnitt verwenden - setzt ein "//" am Anfang der Zeilen.

Oder wenn Sie die Auswahl wirklich blockieren möchten, verwenden Sie die Tastenkombination Strg + Umschalt + /. Es erkennt die Blockkommentare in Ihrer Auswahl. Dies zu rückgängig zu machen, ist jedoch schwieriger als einzeilige Kommentare.

0

Ich benutze oft nur // für Inline-Kommments und verwende /* */ nur für das Auskommentieren großer Blöcke, so wie du es hast.

Viele Entwickler werden immer noch/* */für Inline-Kommentare verwenden, weil sie damit vertraut sind, aber alle laufen auf Probleme wie dieses hinaus, in C war es nicht so wichtig, weil Sie könnten #if 0 das Zeug weg.