簡體   English   中英

魷魚:S2583 –使用開關時,Sonarqube誤報

[英]squid:S2583 – Sonarqube false positive when using switch

對於以下人為的示例(我保證真實的代碼實際上是有道理的),具有Java插件2.10的Sonarqube 5.3將給我帶來可怕的“更改此條件,以便它並不總是評估為“ true””:

public String sonarLint(DayOfWeek dow) {
    boolean one = false;
    boolean two = false;
    switch (dow) {
    case MONDAY:
        one = true;
    case TUESDAY:
        two = true;
        break;
    default:
        // nothing
    }
    return one && two ? "yes" : "no";
}

據我所知,當dowMONDAY ,條件為true,否則為false(IntelliJ同意,順便說一句,告訴我,當對www求值時, two ww始終為真)。 我在這里打過Sonarqube的蟲子嗎?

聲納也應報告錯誤,以防丟失break語句。

切換用例應以無條件的“ break”語句結尾 (Squid:S128)。

一旦在兩種情況下都擁有break語句,則該語句將永遠不會被執行為true。

暫無
暫無

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

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