簡體   English   中英

Eclipse是$ FALL-THROUGH $評論標准嗎?

[英]Is Eclipse's $FALL-THROUGH$ comment standard?

我使用Eclipse,所以對我來說,使用//$FALL-THROUGH$注釋是switch語句之類的常見做法。 但我的同事使用Netbeans並質疑我在做什么。 並試圖谷歌任何帶有符號的東西就像試圖用一對冷凍手套和沒有工具拉牙......

是使用//$FALL-THROUGH$注釋,美元符號和所有,標准的Java事物,還是某種Eclipse魔術? 如果我在Netbeans或其他IDE中加載相同的代碼,或者通過獨立的java編譯器運行它,那么通過switch語句仍然會被標記為警告,即使是否有所述評論? 除了使用@SupressWarning注釋之外, 還有一種標准方法可以做到這一點(考慮到你必須使用它,它會簡單地混亂代碼)嗎?

像這樣的東西是IDE /樣式檢查工具依賴。 沒有“標准Java評論”。

(嗯,Javadocs是標准的,但它們不控制編譯/錯誤報告。)

eclipse 發行文檔中提到了$FALL-THROUGH$結構的解釋:

現在可以通過在以下case語句前面加上以$ FALL-THROUGH $開頭的注釋來抑制switch case語句中預期的掉頭的編譯器問題。 對於無法使用J2SE-5.0樣式的@SuppressWarnings(“fallthrough”)注釋的代碼,這尤其有趣。

請注意, @Suppresswarnings注釋的警告名稱取決於編譯器,而不是Java語言標准。

我見過采用類似評論方案的其他工具(例如FindBugs)。 但沒有任何標准化。

在大多數情況下,只有在case語句包含代碼之前的代碼時才會拋出這些警告。 在大多數情況下,您可以通過分解公共代碼來避免這種情況。

例如,這通常不會觸發警告:

switch (foo) {
  case 1:
  case 2:
    doSomething();
    break;
  ...
}

但這會:

switch (foo) {
  case 1:
    doSomething();
  case 2:
    doSomethingElse();
    break;
  ...
}

我個人認為警告是有原因的。 我認為重構公共代碼更具可讀性和安全性,並且沒有非空的漏洞:

switch (foo) {
  case 1:
    doSomething();
    doSomethingElse();
    break;

  case 2:
    doSomethingElse();
    break;
  ...
}

這個評論是IDE特定的,可能會失敗,其他ide和代碼檢查器,雖然findbugs足夠聰明,可以檢查單詞落在其中的評論。 但是,在任何情況下,你不應該依賴評論來做更多的事情,而不是指導同事程序員,你只是創造了另外一件事要維護。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM