Since Checkstyle 3.2
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.
name | description | type | default value | since |
---|---|---|---|---|
onlyObjectReferences | Control whether only explicit initializations made to null for objects should be checked. | boolean | false |
7.8 |
To configure the check:
<module name="Checker"> <module name="TreeWalker"> <module name="ExplicitInitialization"/> </module> </module>
Example:
public class Example1 { private int intField1 = 0; // violation private int intField2 = 1; private int intField3; private char charField1 = '\0'; // violation private char charField2 = 'b'; private char charField3; private boolean boolField1 = false; // violation private boolean boolField2 = true; private boolean boolField3; private Object objField1 = null; // violation private Object objField2 = new Object(); private Object objField3; private int arrField1[] = null; // violation private int arrField2[] = new int[10]; private int arrField3[]; }
To configure the check so that it only checks for objects that explicitly initialize to null:
<module name="Checker"> <module name="TreeWalker"> <module name="ExplicitInitialization"> <property name="onlyObjectReferences" value="true"/> </module> </module> </module>
Example:
public class Example2 { private int intField1 = 0; // ignored private int intField2 = 1; private int intField3; private char charField1 = '\0'; // ignored private char charField2 = 'b'; private char charField3; private boolean boolField1 = false; // ignored private boolean boolField2 = true; private boolean boolField3; private Object objField1 = null; // violation private Object objField2 = new Object(); private Object objField3; private int arrField1[] = null; // violation private int arrField2[] = new int[10]; private int arrField3[]; }
All messages can be customized if the default message doesn't suit you. Please see the documentation to learn how to.
com.puppycrawl.tools.checkstyle.checks.coding