public class LocalVariableNameCheck extends AbstractNameCheck
Checks that local, non-final variable names conform to a specified pattern.
A catch parameter is considered to be
a local variable.
format - Specifies valid identifiers.
Type is java.util.regex.Pattern.
Default value is "^[a-z][a-zA-Z0-9]*$".
allowOneCharVarInForLoop - Allow one character variable name in
initialization expressions
in FOR loop if one char variable name is prohibited by format regexp. For example:
for (int i = 1; i < 10; i++) { // OK
int j = 1; // violation
}
for (int K = 1; K < 10; K++) { // OK
int j = 1; // violation
}
List list = new ArrayList();
for (Object o : list) { // OK
int j = 1; // violation
}
for (Object O : list) { // OK
int j = 1; // violation
}
Type is boolean.
Default value is false.
An example of how to configure the check is:
<module name="LocalVariableName"/>
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="LocalVariableName"> <property name="format" value="^[a-z](_?[a-zA-Z0-9]+)*$"/> </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="LocalVariableName"> <property name="format" value="^[a-z][_a-zA-Z0-9]+$"/> <property name="allowOneCharVarInForLoop" value="true"/> </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="LocalVariableName">
<property name="format" value="^[a-z][_a-zA-Z0-9]{2,}$"/>
</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
}
}
}
Parent is com.puppycrawl.tools.checkstyle.TreeWalker
Violation Message Keys:
name.invalidPattern
AutomaticBean.OutputStreamOptionsMSG_INVALID_PATTERN| Constructor and Description |
|---|
LocalVariableNameCheck()
Creates a new
LocalVariableNameCheck instance. |
| Modifier and Type | Method and Description |
|---|---|
int[] |
getAcceptableTokens()
The configurable token set.
|
int[] |
getDefaultTokens()
Returns the default token a check is interested in.
|
int[] |
getRequiredTokens()
The tokens that this check must be registered for.
|
protected boolean |
mustCheckName(DetailAST ast)
Decides whether the name of an AST should be checked against
the format regexp.
|
void |
setAllowOneCharVarInForLoop(boolean allow)
Setter to allow one character variable name in
initialization expressions
in FOR loop if one char variable name is prohibited by
format regexp. |
setFormat, visitTokenbeginTree, clearMessages, destroy, finishTree, getFileContents, getLine, getLines, getMessages, getTabWidth, getTokenNames, init, isCommentNodesRequired, leaveToken, log, log, log, setFileContents, setTabWidth, setTokensfinishLocalSetup, getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, setId, setSeverityconfigure, contextualize, getConfiguration, setupChildpublic LocalVariableNameCheck()
LocalVariableNameCheck instance.public final void setAllowOneCharVarInForLoop(boolean allow)
format regexp. For example:
for (int i = 1; i < 10; i++) { // OK
int j = 1; // violation
}
for (int K = 1; K < 10; K++) { // OK
int j = 1; // violation
}
List list = new ArrayList();
for (Object o : list) { // OK
int j = 1; // violation
}
for (Object O : list) { // OK
int j = 1; // violation
}
allow - Flag for allowing or not one character name in FOR loop.public int[] getDefaultTokens()
AbstractCheckgetDefaultTokens in class AbstractCheckTokenTypespublic int[] getAcceptableTokens()
AbstractCheckgetAcceptableTokens in class AbstractCheckTokenTypespublic int[] getRequiredTokens()
AbstractCheckgetRequiredTokens in class AbstractCheckTokenTypesprotected final boolean mustCheckName(DetailAST ast)
AbstractNameCheckmustCheckName in class AbstractNameCheckast - the AST to check.Copyright © 2001–2020. All rights reserved.