switch
statements and expressions with too few case
labels, and suggests rewriting them as if
and
else if
statements.
Example (minimum branches == 3):
switch (expression) {
case "foo" -> foo();
case "bar" -> bar();
}
After the quick-fix is applied:
if ("foo".equals(expression)) {
foo();
} else if ("bar".equals(expression)) {
bar();
}
Configure the inspection:
Use the Minimum number of branches field to specify the minimum expected number of case
labels.
Use the Do not report pattern switch statements option to avoid reporting switch statements and expressions that have pattern branches. E.g.:
String result = switch(obj) {
case String str -> str.trim();
default -> "none";
};
It might be preferred to keep the switch even with a single pattern branch, rather than using the instanceof
statement.