Since Checkstyle 3.0
Checks that local, non-final
variable names conform to a specified pattern.
A catch parameter is considered to be a local variable.
name | description | type | default value | since |
---|---|---|---|---|
format | Specifies valid identifiers. | Pattern | "^[a-z][a-zA-Z0-9]*$" |
3.0 |
allowOneCharVarInForLoop | Allow one character variable name in initialization expressions in FOR loop if one char variable name is prohibited by {@code format} regexp. | boolean | false |
5.8 |
To configure the check:
<module name="Checker"> <module name="TreeWalker"> <module name="LocalVariableName"/> </module> </module>
Code Example:
class MyClass { void MyMethod() { for (int var = 1; var < 10; var++) {} // OK for (int VAR = 1; VAR < 10; VAR++) {} // violation, name 'VAR' must match // pattern '^[a-z][a-zA-Z0-9]*$' for (int i = 1; i < 10; i++) {} // OK for (int var_1 = 0; var_1 < 10; var_1++) {} // violation, name 'var_1' must match // pattern '^[a-z][a-zA-Z0-9]*$' } }
An example of how to configure the check for names that begin with a lower case letter, followed by letters, digits, and underscores is:
<module name="Checker"> <module name="TreeWalker"> <module name="LocalVariableName"> <property name="format" value="^[a-z](_?[a-zA-Z0-9]+)*$"/> </module> </module> </module>
Code Example:
class MyClass { void MyMethod() { for (int var = 1; var < 10; var++) {} // OK for (int VAR = 1; VAR < 10; VAR++) {} // violation, name 'VAR' must match // pattern '^[a-z](_?[a-zA-Z0-9]+)*$' for (int i = 1; i < 10; i++) {} // OK for (int var_1 = 0; var_1 < 10; var_1++) {} // OK } }
An example of one character variable name in initialization expression(like "i") in FOR loop:
for(int i = 1; i < 10; i++) {} for(int K = 1; K < 10; K++) {} List list = new ArrayList(); for (Object o : list) {} for (Object O : list) {}
An example of how to configure the check to allow one character variable name in initialization expressions in FOR loop, where regexp allows 2 or more chars:
<module name="Checker"> <module name="TreeWalker"> <module name="LocalVariableName"> <property name="format" value="^[a-z][_a-zA-Z0-9]+$"/> <property name="allowOneCharVarInForLoop" value="true"/> </module> </module> </module>
Code Example:
class MyClass { void MyMethod() { int good = 1; int g = 0; // violation for (int v = 1; v < 10; v++) { // OK int a = 1; // violation } for (int V = 1; V < 10; V++) { // OK int I = 1; // violation } List list = new ArrayList(); for (Object o : list) { // OK String a = ""; // violation } for (Object O : list) { // OK String A = ""; // violation } } }
An example of how to configure the check to that all variables have 3 or more chars in name:
<module name="Checker"> <module name="TreeWalker"> <module name="LocalVariableName"> <property name="format" value="^[a-z][_a-zA-Z0-9]{2,}$"/> </module> </module> </module>
Code Example:
class MyClass { void MyMethod() { int goodName = 0; int i = 1; // violation for (int var = 1; var < 10; var++) { //OK int j = 1; // violation } } }
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.naming