差異處
這裏顯示兩個版本的差異處。
java:sonarlint:fixcodesmell:s128 [2020/08/02 23:55] tony 建立 |
java:sonarlint:fixcodesmell:s128 [2023/06/25 09:48] |
||
---|---|---|---|
行 1: | 行 1: | ||
- | {{tag>SonarLint}} | + | |
- | ====== SonarLint | Switch cases should end with an unconditional "break" statement (java:S128) ====== | + | |
- | ===== Problem ===== | + | |
- | 這是個蠻常見的問題,好發於新手或是沒睡飽的人身上。如以下程式碼,如果sensorType是TEMPERATURE,它除了會執行自己區塊的程式碼以外,還會去執行CURRENT部分: | + | |
- | <code java> | + | |
- | switch (sensorType) { | + | |
- | case TEMPERATURE: | + | |
- | // handle1 .. | + | |
- | case CURRENT: | + | |
- | // handle2 .. | + | |
- | break; | + | |
- | default: | + | |
- | break; | + | |
- | } | + | |
- | </code> | + | |
- | ===== How to fix? ===== | + | |
- | 修改方法就是記得在個別區塊加上break: | + | |
- | <code java> | + | |
- | switch (sensorType) { | + | |
- | case TEMPERATURE: | + | |
- | // handle1 .. | + | |
- | break; | + | |
- | case CURRENT: | + | |
- | // handle2 .. | + | |
- | break; | + | |
- | default: | + | |
- | break; | + | |
- | } | + | |
- | </code> | + | |
- | ===== ===== | + | |
- | ---- | + | |
- | \\ | + | |
- | ~~DISQUS~~ | + |