差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

java:sonarlint:fixcodesmell:s2178 [2020/08/02 16:13]
tony 建立
java:sonarlint:fixcodesmell:s2178 [2023/06/25 09:48]
行 1: 行 1:
-{{tag>​SonarLint}} +
-====== SonarLint | Short-circuit logic should be used in boolean contexts (java:​S2178) ====== +
-===== Problem ===== +
-這問題指的是在做邏輯運算時,如果只有使用一個|或一個&​,通常都是誤用:​ +
-<code java> +
-if (test1() | test2()){ +
-// skip +
-+
-</​code>​ +
-即使程式碼實際上有照你預期進入block或沒進入block,但當test1()是true時,其實test2()還是會強制被執行的。 +
-===== How to fix? ===== +
-只要把一個|改成||即可,這樣如果test1()是true,就會直接執行block中的程式碼:​ +
-<code java> +
-if (test1() || test2()){ +
-// skip +
-+
-</​code>​ +
-=====    ===== +
----- +
-\\ +
-~~DISQUS~~+