差異處

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

連向這個比對檢視

java:sonarlint:fixcodesmell:s2178 [2020/08/02 16:13] (目前版本)
tony 建立
行 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~~