I commenti Java su più righe tengono conto delle stringhe?
Domanda
Questa domanda probabilmente si applicherebbe allo stesso modo anche ad altri linguaggi con commenti su più righe simili a C.Ecco il problema che sto riscontrando.Sto lavorando con il codice Java in Eclipse e volevo commentare un blocco di codice.Tuttavia, esiste una stringa che contiene la sequenza di caratteri "*/" ed Eclipse pensa che il commento dovrebbe finire lì, anche se è all'interno di una stringa.Mi dà tonnellate di errori e non riesce a costruire.
/*
... some Java code ...
... "... */ ..." ...
... more Java code ...
*/
La specifica Java corrisponde all'interpretazione di Eclipse del mio commento su più righe?Mi piacerebbe pensare che Java e/o Eclipse spiegherebbero questo genere di cose.
Soluzione
Eclissi è corretto.Non esiste un contesto interpretativo all'interno di un commento (nessuna fuga, ecc.).Vedere JLS §3.7.
Altri suggerimenti
In Eclipse puoi evidenziare la parte del codice sorgente che desideri commentare e utilizzare Ctrl+/ per commentare su una sola riga ogni riga nella sezione evidenziata: inserisce un "//" all'inizio delle righe.
Oppure, se vuoi veramente bloccare la selezione, usa la combinazione Ctrl+Shift+/.Rileverà i commenti di blocco nella tua selezione.Tuttavia, annullare ciò è più difficile dei commenti a riga singola.
Sì, sto commentando il codice solo per fare un rapido test.Ho già testato ciò di cui avevo bisogno commentando il codice in un altro modo;Ero solo curioso di sapere quella che sembra essere una strana funzionalità errata di Java e/o Eclipse.
Un semplice test mostra che Eclipse è corretto:
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);
}
}
Questo non riesce a compilare con:
Test.java:5: unclosed string literal
s = "This is the end of a comment: */ ";
Potrebbe essere utile fare semplicemente un commento su più righe "batch" in modo che commenti ogni riga con "//".È Ctrl+"/" in Idea per commentare e rimuovere il commento dalle righe selezionate, Eclipse dovrebbe avere una funzionalità simile.
Spesso uso solo //
per i commenti in linea e utilizzare /* */
solo per commentare blocchi di grandi dimensioni come hai fatto tu.
Molti sviluppatori useranno ancora /* */ per i commenti in linea, perché è ciò con cui hanno familiarità, ma tutti incontrano problemi come questo, in C non aveva molta importanza perché potresti #if 0 the roba via.