LocalVariableName

Since Checkstyle 3.0

Description

Checks that local, non-final variable names conform to a specified pattern. A catch parameter is considered to be a local variable.

This check does not support pattern variables. Instead, use PatternVariableName.

Properties

name description type default value since
allowOneCharVarInForLoop Allow one character variable name in initialization expressions in FOR loop if one char variable name is prohibited by format regexp. boolean false 5.8
format Sets the pattern to match valid identifiers. Pattern "^([a-z][a-zA-Z0-9]*|_)$" 3.0

Examples

To configure the check:

<module name="Checker">
  <module name="TreeWalker">
    <module name="LocalVariableName"/>
  </module>
</module>
        

Code Example:

class Example1 {
  void MyMethod() {
    for (int var = 1; var < 10; var++) {}
    for (int VAR = 1; VAR < 10; VAR++) {} // violation
    for (int i = 1; i < 10; i++) {}
    for (int var_1 = 0; var_1 < 10; var_1++) {} // violation
  }
}
        

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 Example2 {
  void MyMethod() {
    for (int var = 1; var < 10; var++) {}
    for (int VAR = 1; VAR < 10; VAR++) {} // violation
    for (int i = 1; i < 10; i++) {}
    for (int var_1 = 0; var_1 < 10; var_1++) {}
  }
}
        

An example of one character variable name in initialization expression(like "i") in FOR loop:

class Example3 {
  void myMethod () {
    for(int i = 1; i < 10; i++) {}
    for(int K = 1; K < 10; K++) {} // violation
    List list = new ArrayList();
    for (Object o : list) {}
    for (Object O : list) {} // violation
  }
}
        

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 Example4 {
  void MyMethod() {
    int good = 1;
    int g = 0; // violation
    for (int v = 1; v < 10; v++) {
      int a = 1; // violation
    }
    for (int V = 1; V < 10; V++) {
      int I = 1; // violation
    }
    List list = new ArrayList();
    for (Object o : list) {
      String a = ""; // violation
    }
    for (Object O : list) {
      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 Example5 {
  void MyMethod() {
    int goodName = 0;
    int i = 1; // violation
    for (int var = 1; var < 10; var++) {
      int j = 1; // violation
    }
  }
}
        

Example of Usage

Violation Messages

All messages can be customized if the default message doesn't suit you. Please see the documentation to learn how to.

Package

com.puppycrawl.tools.checkstyle.checks.naming

Parent Module

TreeWalker