public class ExplicitInitializationCheck extends AbstractCheck
Checks if any class or object member is explicitly initialized
to default for its type value (null for object
references, zero for numeric types and char
and false for boolean.
Rationale: Each instance variable gets
initialized twice, to the same value. Java
initializes each instance variable to its default
value (0 or null) before performing any
initialization specified in the code.
So there is a minor inefficiency.
onlyObjectReferences - control whether only explicit
initializations made to null for objects should be checked.
Type is boolean.
Default value is false.
To configure the check:
<module name="ExplicitInitialization"/>
To configure the check so that it only checks for objects that explicitly initialize to null:
<module name="ExplicitInitialization"> <property name="onlyObjectReferences" value="true"/> </module>
Example:
public class Test {
private int a = 0;
private int b = 1;
private int c = 2;
private boolean a = true;
private boolean b = false;
private boolean c = true;
private boolean d = false;
private boolean e = false;
private A a = new A();
private A b = null; // violation
private C c = null; // violation
private D d = new D();
int ar1[] = null; // violation
int ar2[] = new int[];
int ar3[];
private Bar<String> bar = null; // violation
private Bar<String>[] barArray = null; // violation
public static void main( String [] args ) {
}
}
Parent is com.puppycrawl.tools.checkstyle.TreeWalker
Violation Message Keys:
explicit.init
AutomaticBean.OutputStreamOptions| Modifier and Type | Field and Description |
|---|---|
static String |
MSG_KEY
A key is pointing to the warning message text in "messages.properties"
file.
|
| Constructor and Description |
|---|
ExplicitInitializationCheck() |
| 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.
|
void |
setOnlyObjectReferences(boolean onlyObjectReferences)
Setter to control whether only explicit initializations made to null
for objects should be checked.
|
void |
visitToken(DetailAST ast)
Called to process a token.
|
beginTree, 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 static final String MSG_KEY
public ExplicitInitializationCheck()
public final int[] getDefaultTokens()
AbstractCheckgetDefaultTokens in class AbstractCheckTokenTypespublic final int[] getRequiredTokens()
AbstractCheckgetRequiredTokens in class AbstractCheckTokenTypespublic final int[] getAcceptableTokens()
AbstractCheckgetAcceptableTokens in class AbstractCheckTokenTypespublic void setOnlyObjectReferences(boolean onlyObjectReferences)
onlyObjectReferences - whether only explicit initialization made to null
should be checkedpublic void visitToken(DetailAST ast)
AbstractCheckvisitToken in class AbstractCheckast - the token to processCopyright © 2001–2020. All rights reserved.