2008-08-28 70 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

我可能是有用的只是做一個「批量」多行註釋,以便它評論的每與「//」一致。在Idea中,Ctrl +「/」用於註釋和取消註釋選定的行,Eclipse應該具有類似的功能。

2

在Eclipse中,您可以突出顯示要註釋的源代碼部分,並使用Ctrl + /單行註釋突出顯示部分的每一行 - 在行首部添加「//」。

或者,如果您真的想阻止評論選擇使用Ctrl + Shift + /組合。它會檢測您選擇的塊註釋。然而,取消這一點比單行評論困難。

0

我經常只使用//進行內聯式調用,並使用/* */僅用於按照您的方式評論大塊。

很多開發者仍然會使用/ * * /作爲內聯評論,因爲這就是他們所熟悉的內容,但他們都遇到了像這樣的問題,在C中它並不重要,因爲你可以#如果0的東西了。

相關問題