2008-08-28 8 views
4

この質問は多分Cのような複数行のコメントを持つ他の言語にも同様に当てはまります。ここに私が遭遇している問題があります。私はEclipseでJavaコードを扱っています。コードブロックをコメントにしたいと思っていました。しかし、文字列 "* /"を含む文字列があり、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 + "/"をクリックします。Eclipseにも同様の機能があります。

2

Eclipseでは、コメントアウトしたいソースコードの部分をハイライト表示し、強調表示されたセクションのすべての行をCtrl + /を使って1行コメントにすることができます - 行の先頭に "//"を置きます。

また、実際に選択をブロックしたい場合は、Ctrl + Shift + /の組み合わせを使用します。選択したブロックコメントが検出されます。ただし、これを取り消すことは、単一行のコメントよりも困難です。

0

多くの場合、インラインコミッションには//のみを使用し、大きいブロックにはコメントを付ける場合にのみ/* */を使用します。

多くの開発者が、インラインコメントには/ * * /を使用しています。なぜなら、これは彼らが慣れ親しんでいるものだからです。しかし、これらはすべてこのような問題に遭遇します。 #if 0そのものを捨てる。

関連する問題