5

この質問はおそらく、C のような複数行コメントを持つ他の言語にも同じように当てはまるでしょう。これが私が遭遇している問題です。私は Eclipse で Java コードを扱っていますが、コードのブロックをコメントアウトしたいと考えていました。ただし、文字シーケンス「*/」を含む文字列があり、文字列内にあるにもかかわらず、Eclipse はコメントをそこで終了する必要があると判断します。大量のエラーが発生し、ビルドに失敗します。

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

Java 仕様は、私の複数行コメントの Eclipse の解釈と一致しますか? JavaやEclipseがこの種のことを説明すると思います。

4

6 に答える 6

9

エクリプスは正しいです。コメント内に解釈コンテキストはありません (エスケープなどはありません)。JLS §3.7を参照してください。

于 2008-08-28T17:54:34.947 に答える
2

Eclipse では、コメント アウトするソース コードの部分を強調表示し、Ctrl+/ を使用して、強調表示されたセクションのすべての行を単一行コメントにすることができます。行の先頭に「//」を置きます。

または、本当に選択をブロック コメントしたい場合は、Ctrl+Shift+/ の組み合わせを使用します。選択範囲内のブロック コメントが検出されます。ただし、これを元に戻すのは、1 行のコメントよりも困難です。

于 2008-08-28T18:15:36.473 に答える
1

はい、簡単なテストを行うためだけにコードをコメントアウトしています。コードを別の方法でコメントアウトすることで、必要なものをすでにテストしました。私は、Java や Eclipse の奇妙な誤機能のように見えるものに興味がありました。

于 2008-08-28T17:56:10.857 に答える
0

私はよく//インラインコメントにのみ使用/* */し、大きなブロックをあなたのようにコメントアウトするためにのみ使用します。

多くの開発者は、インラインコメントに/ * * /を使用します。これは、彼らがよく知っていることだからですが、Cでは、#if 0を実行できるため、それほど重要ではありませんでした。詰め込みます。

于 2008-09-27T16:06:11.257 に答える
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: */ ";
于 2008-08-28T17:58:06.187 に答える
0

各行に「//」を付けてコメントするように、「バッチ」複数行コメントを行うと役立つ場合があります。選択した行にコメントを付けたりコメントを外したりするのは Idea の Ctrl+"/" です。Eclipse にも同様の機能があるはずです。

于 2008-08-28T17:59:12.237 に答える