Checks for empty blocks.
| name | description | type | default value |
|---|---|---|---|
| option | policy on block contents | block policy | stmt |
| tokens | blocks to check | subset of tokens LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY, LITERAL_IF, LITERAL_FOR, LITERAL_TRY, LITERAL_WHILE, INSTANCE_INIT STATIC_INIT | all tokens |
To configure the check:
<module name="EmptyBlock"/> |
||
To configure the check for the text policy and only catch blocks:
<module name="EmptyBlock">
<property name="option" value="text"/>
<property name="tokens" value="LITERAL_CATCH"/>
</module> |
||
com.puppycrawl.tools.checkstyle.checks.blocks
Checks for the placement of left curly braces ('{') for code blocks. The policy to verify is specified using property option. Policies eol and nlow take into account property maxLineLength.
| name | description | type | default value |
|---|---|---|---|
| option | policy on placement of a left curly brace ('{') | left curly brace policy | eol |
| maxLineLength | maximum number of characters in a line | integer | 80 |
| tokens | blocks to check | subset of tokens CLASS_DEF, CTOR_DEF, INTERFACE_DEF, LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY, LITERAL_FOR, LITERAL_IF, LITERAL_SWITCH, LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE, METHOD_DEF | all tokens |
To configure the check:
<module name="LeftCurly"/> |
||
To configure the check to apply the nl policy to type blocks:
<module name="LeftCurly">
<property name="option" value="nl"/>
<property name="tokens" value="CLASS_DEF,INTERFACE_DEF"/>
</module> |
||
com.puppycrawl.tools.checkstyle.checks.blocks
Checks for braces around code blocks.
| name | description | type | default value |
|---|---|---|---|
| tokens | blocks to check | subset of tokens LITERAL_DO, LITERAL_ELSE, LITERAL_IF, LITERAL_FOR, LITERAL_WHILE | all tokens |
To configure the check:
<module name="NeedBraces"/> |
||
To configure the check for if and else blocks:
<module name="NeedBraces">
<property name="tokens" value="LITERAL_IF, LITERAL_ELSE"/>
</module> |
||
com.puppycrawl.tools.checkstyle.checks.blocks
Checks the placement of right curly braces ('}') for else, try, and catch tokens. The policy to verify is specified using property option.
| name | description | type | default value |
|---|---|---|---|
| option | policy on placement of a right curly brace ('}') | right curly brace policy | same |
| tokens | blocks to check | subset of tokens LITERAL_TRY, LITERAL_CATCH, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE | LITERAL_TRY, LITERAL_CATCH, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE |
| shouldStartLine | should we check if '}' starts line. | boolean | true |
To configure the check:
<module name="RightCurly"/> |
||
To configure the check with policy alone for else tokens:
<module name="RightCurly">
<property name="option" value="alone"/>
<property name="tokens" value="LITERAL_ELSE"/>
</module> |
||
com.puppycrawl.tools.checkstyle.checks.blocks
Finds nested blocks, i.e. blocks that are used freely in the code.
Rationale: Nested blocks are often leftovers from the debugging process, they confuse the reader.
For example this Check finds the obsolete braces in
public void guessTheOutput()
{
int whichIsWich = 0;
{
int whichIsWhich = 2;
}
System.out.println("value = " + whichIsWhich);
} |
||
and debugging / refactoring leftovers such as
// if (conditionThatIsNotUsedAnyLonger)
{
System.out.println("unconditional");
} |
||
A case in a switch statement does not implicitly form a block. Thus to be able to introduce local variables that have case scope it is necessary to open a nested block. This is supported, set the allowInSwitchCase property to true and include all statements of the case in the block.
switch (a)
{
case 0:
// Never OK, break outside block
{
x = 1;
}
break;
case 1:
// Never OK, statement outside block
System.out.println("Hello");
{
x = 2;
break;
}
case 1:
// OK if allowInSwitchCase is true
{
System.out.println("Hello");
x = 2;
break;
}
} |
||
| name | description | type | default value |
|---|---|---|---|
| allowInSwitchCase | Allow nested blocks in case statements | boolean | false |
To configure the check:
<module name="AvoidNestedBlocks"/> |
||
com.puppycrawl.tools.checkstyle.checks.blocks