0
對於以下人爲的例子(真實的代碼實際上是有道理的,我承諾),Sonarqube 5.3與Java插件2.10會給我可怕的「改變這個條件,使它不會始終評估爲「真」」:魷魚:S2583 - 使用開關時的Sonarqube誤報
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";
}
據我所看到的,當dow
是MONDAY
,條件爲真,而這否則爲false(的IntelliJ同意,順便說一句,告訴我,two
whill始終是真實的當它被評估時)。我在這裏遇到了Sonarqube的錯誤嗎?
的確如此,但與我的問題無關。正如所指出的,真實代碼看起來有點不同。 –
你的DayOfWeek Enum有什麼值?如果只有兩個不同的值(MONDAY,TUESDAY),那麼它會報告相同的錯誤,您的條件將始終評估爲true。 – PyThon
'java.time.DayOfWeek'包含7個枚舉值,而不是令人驚訝的。即使沒有,「MONDAY」和「TUESDAY」的路徑也有很大不同。 –