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, setTokens
finishLocalSetup, getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, setId, setSeverity
configure, contextualize, getConfiguration, setupChild
public static final String MSG_EQUALS_AVOID_NULL
public static final String MSG_EQUALS_IGNORE_CASE_AVOID_NULL
public EqualsAvoidNullCheck()
public int[] getDefaultTokens()
AbstractCheck
getDefaultTokens
in class AbstractCheck
TokenTypes
public int[] getAcceptableTokens()
AbstractCheck
getAcceptableTokens
in class AbstractCheck
TokenTypes
public int[] getRequiredTokens()
AbstractCheck
getRequiredTokens
in class AbstractCheck
TokenTypes
public void setIgnoreEqualsIgnoreCase(boolean newValue)
String.equalsIgnoreCase(String)
invocations.newValue
- whether to ignore checking
String.equalsIgnoreCase(String)
.public void beginTree(DetailAST rootAST)
AbstractCheck
beginTree
in class AbstractCheck
rootAST
- the root of the treepublic void visitToken(DetailAST ast)
AbstractCheck
visitToken
in class AbstractCheck
ast
- the token to processpublic void leaveToken(DetailAST ast)
AbstractCheck
leaveToken
in class AbstractCheck
ast
- the token leavingpublic void finishTree(DetailAST ast)
AbstractCheck
finishTree
in class AbstractCheck
ast
- the root of the treeCopyright © 2001–2020. All rights reserved.