Class ImplicitConstructorCheck
- All Implemented Interfaces:
com.puppycrawl.tools.checkstyle.api.Configurable,com.puppycrawl.tools.checkstyle.api.Contextualizable
A class that declares no constructor gets one from the compiler,
with the access of the class itself. Javadoc puts that constructor
into the generated page, finds no comment on it, and says "use of
default constructor, which does not provide a comment". A build that
turns Javadoc warnings into errors, which the maven-javadoc-plugin
does through failOnWarnings, breaks over it, and the mistake
surfaces at site time rather than at the moment the class is written.
The fix is an explicit constructor with a Javadoc block above it, and this check asks for it before Javadoc does.
Only the classes Javadoc documents are reported, because only they carry the warning. A class is documented when it is public or protected, and so is every class around it, since a nested class of a package-private one never reaches the page. A member of an interface or of an annotation counts as public without saying so.
The other type declarations stay out. An interface and an
annotation have no constructor to document. An enum gets a private
one, which Javadoc leaves out of the page. A record gets a canonical
one, which Javadoc documents from the @param tags of the
record itself. A local class and a member of an anonymous one are not
documented either, whatever their modifiers say.
- Since:
- 0.73.4
-
Nested Class Summary
Nested classes/interfaces inherited from class com.puppycrawl.tools.checkstyle.AbstractAutomaticBean
com.puppycrawl.tools.checkstyle.AbstractAutomaticBean.OutputStreamOptions -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionint[]int[]int[]voidvisitToken(com.puppycrawl.tools.checkstyle.api.DetailAST ast) Methods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractCheck
beginTree, clearViolations, destroy, finishTree, getFileContents, getFilePath, getLine, getLineCodePoints, getLines, getTabWidth, getTokenNames, getViolations, init, isCommentNodesRequired, leaveToken, log, log, log, setFileContents, setTabWidth, setTokensMethods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
finishLocalSetup, getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, setId, setSeverityMethods inherited from class com.puppycrawl.tools.checkstyle.AbstractAutomaticBean
configure, contextualize, getConfiguration, setupChild
-
Constructor Details
-
ImplicitConstructorCheck
public ImplicitConstructorCheck()Default constructor.
-
-
Method Details
-
getDefaultTokens
public int[] getDefaultTokens()- Specified by:
getDefaultTokensin classcom.puppycrawl.tools.checkstyle.api.AbstractCheck
-
getAcceptableTokens
public int[] getAcceptableTokens()- Specified by:
getAcceptableTokensin classcom.puppycrawl.tools.checkstyle.api.AbstractCheck
-
getRequiredTokens
public int[] getRequiredTokens()- Specified by:
getRequiredTokensin classcom.puppycrawl.tools.checkstyle.api.AbstractCheck
-
visitToken
public void visitToken(com.puppycrawl.tools.checkstyle.api.DetailAST ast) - Overrides:
visitTokenin classcom.puppycrawl.tools.checkstyle.api.AbstractCheck
-