Switch statements should have a default case
ID: java-best-practices/missing-switch-statement-default
Language: Java
Severity: Warning
Category: Best Practices
Description
To improve the understandability your switch
statement, it is recommended to make your statements exhaustive by incorporating a default
case.
Non-Compliant Code Examples
class Foo {
public String getValue() {
int num = 10;
System.out.println("foobar");
switch (num) {
case 1:
return "One";
case 2:
return "Two";
case 3:
return "Three";
}
}
public String getValue() {
int num = 10;
switch (num) {
case 1:
return "One";
case 2:
return "Two";
case 3:
return "Three";
}
}
}
class Foo {
public String getValue(int num) {
switch (num) {
case 1:
return "One";
case 2:
return "Two";
case 3:
return "Three";
}
}
public String getValue2(MyType num) {
switch (num) {
case 1:
return "One";
case 2:
return "Two";
case 3:
return "Three";
}
}
}
class Bar {
public String getValue(int num) {
if (something) {
switch (num) {
case 1: // a comment
return "One";
case 2:
return "Two"; // another comment
case 3:
return "Three";
}
} else {
if (somethingElse) {
switch (num) {
case 'j': // a comment
return "One";
case 2.3:
return "Two"; // another comment
case 3:
return "Three";
}
}
}
}
}
Compliant Code Examples
class Foo {
public String getValue(int num) {
switch (num) {
case 1:
return "One";
case 2:
return "Two";
case 3:
return "Three";
default:
return "Unknown"
}
}
}
class Bar {
public String getValue(int num) {
switch (num) {
case 1: // a comment
return "One";
case 2:
return "Two"; // another comment
case 3:
return "Three";
default:
return "Unknown"
}
}
}
class Bar {
public String getValue(int num) {
return switch (num) {
case 1 -> "one";
case 2 -> "two";
default -> "unknown";
}
}
}