public class EqualsAvoidNullCheck extends AbstractCheck
Checks that any combination of String literals
is on the left side of an equals() comparison.
Also checks for String literals assigned to some field
(such as someString.equals(anotherString = "text")).
Rationale: Calling the equals() method on String literals
will avoid a potential NullPointerException. Also, it is
pretty common to see null checks right before equals comparisons
but following this rule such checks are not required.
ignoreEqualsIgnoreCase - Control whether to ignore
String.equalsIgnoreCase(String) invocations.
Type is boolean.
Default value is false.
To configure the check:
<module name="EqualsAvoidNull"/>
Example:
String nullString = null;
nullString.equals("My_Sweet_String"); // violation
"My_Sweet_String".equals(nullString); // OK
nullString.equalsIgnoreCase("My_Sweet_String"); // violation
"My_Sweet_String".equalsIgnoreCase(nullString); // OK
To configure the check to allow ignoreEqualsIgnoreCase:
<module name="EqualsAvoidNull"> <property name="ignoreEqualsIgnoreCase" value="true"/> </module>
Example:
String nullString = null;
nullString.equals("My_Sweet_String"); // violation
"My_Sweet_String".equals(nullString); // OK
nullString.equalsIgnoreCase("My_Sweet_String"); // OK
"My_Sweet_String".equalsIgnoreCase(nullString); // OK
Parent is com.puppycrawl.tools.checkstyle.TreeWalker
Violation Message Keys:
equals.avoid.null
equalsIgnoreCase.avoid.null
AutomaticBean.OutputStreamOptions| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
MSG_EQUALS_AVOID_NULL
A key is pointing to the warning message text in "messages.properties"
file.
|
static java.lang.String |
MSG_EQUALS_IGNORE_CASE_AVOID_NULL
A key is pointing to the warning message text in "messages.properties"
file.
|
| Constructor and Description |
|---|
EqualsAvoidNullCheck() |
| Modifier and Type | Method and Description |
|---|---|
void |
beginTree(DetailAST rootAST)
Called before the starting to process a tree.
|
void |
finishTree(DetailAST ast)
Called after finished processing a tree.
|
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.
|
void |
leaveToken(DetailAST ast)
Called after all the child nodes have been process.
|
void |
setIgnoreEqualsIgnoreCase(boolean newValue)
Setter to control whether to ignore
String.equalsIgnoreCase(String) invocations. |
void |
visitToken(DetailAST ast)
Called to process a token.
|
clearMessages, destroy, getFileContents, getLine, getLines, getMessages, getTabWidth, getTokenNames, init, isCommentNodesRequired, log, log, log, setFileContents, setTabWidth, setTokensfinishLocalSetup, getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, setId, setSeverityconfigure, contextualize, getConfiguration, setupChildpublic static final java.lang.String MSG_EQUALS_AVOID_NULL
public static final java.lang.String MSG_EQUALS_IGNORE_CASE_AVOID_NULL
public EqualsAvoidNullCheck()
public int[] getDefaultTokens()
AbstractCheckgetDefaultTokens in class AbstractCheckTokenTypespublic int[] getAcceptableTokens()
AbstractCheckgetAcceptableTokens in class AbstractCheckTokenTypespublic int[] getRequiredTokens()
AbstractCheckgetRequiredTokens in class AbstractCheckTokenTypespublic void setIgnoreEqualsIgnoreCase(boolean newValue)
String.equalsIgnoreCase(String) invocations.newValue - whether to ignore checking
String.equalsIgnoreCase(String).public void beginTree(DetailAST rootAST)
AbstractCheckbeginTree in class AbstractCheckrootAST - the root of the treepublic void visitToken(DetailAST ast)
AbstractCheckvisitToken in class AbstractCheckast - the token to processpublic void leaveToken(DetailAST ast)
AbstractCheckleaveToken in class AbstractCheckast - the token leavingpublic void finishTree(DetailAST ast)
AbstractCheckfinishTree in class AbstractCheckast - the root of the treeCopyright © 2001-2020. All Rights Reserved.