Since Checkstyle 3.4
Check that the default is after all the
cases in a switch statement.
Rationale: Java allows default anywhere
within the switch statement. But it is
more readable if it comes after the last case.
| name | description | type | default value | since |
|---|---|---|---|---|
| skipIfLastAndSharedWithCase | Control whether to allow default along with case if they are not last. |
boolean | false |
7.7 |
To configure the check:
<module name="Checker">
<module name="TreeWalker">
<module name="DefaultComesLast"/>
</module>
</module>
Example:
switch (i) {
case 1:
break;
case 2:
break;
default: // OK
break;
}
switch (i) {
case 1:
break;
case 2:
break; // OK, no default
}
switch (i) {
case 1:
break;
default: // violation, 'default' before 'case'
break;
case 2:
break;
}
switch (i) {
case 1:
default: // violation, 'default' before 'case'
break;
case 2:
break;
}
To configure the check to allow default label to be not last if it is shared with case:
<module name="Checker">
<module name="TreeWalker">
<module name="DefaultComesLast">
<property name="skipIfLastAndSharedWithCase" value="true"/>
</module>
</module>
</module>
Example:
switch (i) {
case 1:
break;
case 2:
default: // OK
break;
case 3:
break;
}
switch (i) {
case 1:
break;
default: // violation
case 2:
break;
}
// Switch rules are not subject to fall through, so this is still a violation:
switch (i) {
case 1 -> x = 9;
default -> x = 10; // violation
case 2 -> x = 32;
}
All messages can be customized if the default message doesn't suit you. Please see the documentation to learn how to.
com.puppycrawl.tools.checkstyle.checks.coding