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,
which is not necessary in the example below.
For example, this code:
String nullString = null;
nullString.equals("My_Sweet_String");
should be refactored to:
String nullString = null; "My_Sweet_String".equals(nullString);
ignoreEqualsIgnoreCase - Control whether to ignore
String.equalsIgnoreCase(String) invocations.
Type is boolean.
Default value is false.
To configure the check:
<module name="EqualsAvoidNull"/>
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 String |
MSG_EQUALS_AVOID_NULL
A key is pointing to the warning message text in "messages.properties"
file.
|
static 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 String MSG_EQUALS_AVOID_NULL
public static final 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.