Since Java 7, Strings can be used as switch arguments. So when a single String is tested against three or
more values in an if/else if structure, it should be converted to a switch instead for greater readability.
Note that this rule is automatically disabled when the project’s sonar.java.source is lower than 7.
Noncompliant code example
if ("red".equals(choice)) { // Noncompliant
dispenseRed();
} else if ("blue".equals(choice)) {
dispenseBlue();
} else if ("yellow".equals(choice)) {
dispenseYellow();
} else {
promptUser();
}
Compliant solution
switch(choice) {
case "Red":
dispenseRed();
break;
case "Blue":
dispenseBlue():
break;
case "Yellow":
dispenseYellow();
break;
default:
promptUser();
break;
}