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