Check location of annotation on language elements. By default, Check enforce to locate annotations immediately after documentation block and before target element, annotation should be located on separate line from target element.
Attention: Annotations among modifiers are ignored (looks like false-negative)
as there might be a problem with annotations for return types
Example:
name | description | type | default value |
---|---|---|---|
allowSamelineMultipleAnnotations | To allow annotation(s) to be located on the same line as target element. | Boolean | false |
allowSamelineSingleParameterlessAnnotation | To allow single parameterless annotation to be located on the same line as target element. | Boolean | true |
allowSamelineParameterizedAnnotation | To allow one and only parameterized annotation to be located on the same line as target element. | Boolean | false |
tokens | tokens to check | subset of tokens CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF, VARIABLE_DEF, PARAMETER_DEF, ANNOTATION_DEF, TYPECAST, LITERAL_THROWS, IMPLEMENTS_CLAUSE, TYPE_ARGUMENT, LITERAL_NEW, DOT, ANNOTATION_FIELD_DEF. | CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF, VARIABLE_DEF. |
Example to allow multiple annotations on the same line
Use following configuration:
Example to allow one single parameterless annotation on the same line
Use following configuration:
Example to allow only one and only pametrized annotation on the same line
Use following configuration:
The following example demonstrates how the check validates annotations of method parameters, catch parameters, foreach, for-loop variable definitions.
Configuration:
Code example:
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.annotation
This check controls the style with the usage of annotations.
name | description | type | default value |
---|---|---|---|
elementStyle |
Defines the annotation element styles. |
element style |
compact_no_array
|
closingParens | Defines the policy for ending parenthesis. | closing parens |
never
|
trailingArrayComma | Defines the policy for trailing comma in arrays. | trailing comma |
never
|
To configure the check:
To configure the check to enforce an
expanded
style, with a
trailing array comma set to never
and always including the closing
parenthesis.
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.annotation
Verifies that both the java.lang.Deprecated annotation is present and the @deprecated Javadoc tag is present when either is present.
name | description | type | default value |
---|---|---|---|
skipNoJavadoc | When this property is set to true check ignore cases when JavaDoc is missing, but still warns when JavaDoc is present but either @deprecated is missing from JavaDoc or @deprecated is missing from the element. | Boolean | false |
To configure the check:
In addition you can configure this check with skipNoJavadoc option:
Examples of validating source code with skipNoJavadoc:
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.annotation
Verifies that the java.lang.Override annotation is present when the {@inheritDoc} javadoc tag is present.
name | description | type | default value |
---|---|---|---|
javaFiveCompatibility |
When this property is true this check will only check
classes, interfaces, etc. that do not contain the extends
or implements keyword or are not anonymous classes. This
means it only checks methods overridden from
java.lang.Object
Java 5 Compatibility mode severely limits this
check. It is recommended to only use it on Java 5 source
|
Boolean |
false
|
To configure the check:
To configure the check for the javaFiveCompatibility
mode:
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.annotation
This check makes sure that all package annotations are in the package-info.java file.
According to the Java Language Specification.
The JLS does not enforce the placement of package annotations. This placement may vary based on implementation. The JLS does highly recommend that all package annotations are placed in the package-info.java file. See Java Language Specification, section 7.4.1.
To configure the check:
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.annotation
This check allows you to specify what warnings that SuppressWarnings is not allowed to suppress. You can also specify a list of TokenTypes that the configured warning(s) cannot be suppressed on.
Limitations: This check does not consider conditionals
inside the SuppressWarnings annotation.
For example: @SuppressWarnings((false) ? (true) ? "unchecked" : "foo" : "unused")
According to the above example, the "unused" warning is being suppressed
not the "unchecked" or "foo" warnings. All of these warnings will be
considered and matched against regardless of what the conditional
evaluates to.
The check also does not support code like @SuppressWarnings("un" + "used")
,
@SuppressWarnings((String) "unused")
or
@SuppressWarnings({('u' + (char)'n') + (""+("used" + (String)"")),})
.
name | description | type | default value |
---|---|---|---|
format | The warnings property is a regex pattern. Any warning being suppressed matching this pattern will be flagged. | Regular Expression |
"^$|^\s+$"
|
tokens | tokens to check | subset of tokens CLASS_DEF, INTERFACE_DEF, ENUM_DEF, ANNOTATION_DEF, ANNOTATION_FIELD_DEF, ENUM_CONSTANT_DEF, PARAMETER_DEF, VARIABLE_DEF, METHOD_DEF, CTOR_DEF. | CLASS_DEF, INTERFACE_DEF, ENUM_DEF, ANNOTATION_DEF, ANNOTATION_FIELD_DEF, ENUM_CONSTANT_DEF, PARAMETER_DEF, VARIABLE_DEF, METHOD_DEF, CTOR_DEF. |
To configure the check:
To configure the check so that the "unchecked" and "unused" warnings cannot be suppressed on anything but variable and parameter declarations.
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.annotation
Maintains a set of check suppressions from
@SuppressWarnings
annotations. It allows to
prevent Checkstyle from reporting errors from parts of code
that were annotated with @SuppressWarnings
and
using name of the check to be excluded. You can also define
aliases for check names that need to be suppressed.
name | description | type | default value |
---|---|---|---|
aliasList | Aliases for check names that can be used in code within SuppressWarnings |
String Set in a format of comma separated attribute=value entries. The attribute is the fully qualified name of the Check and value is its alias. | null |
To prevent FooCheck
errors from being reported write:
Some real check examples:
This will prevent from invocation of the MemberNameCheck:
You can also use a checkstyle
prefix to prevent compiler from processing this annotations.
For example this will prevent ConstantNameCheck
The general rule is that the argument of the @SuppressWarnings
will be matched against class name of the checker in lower case
and without Check
suffix if present
If aliasList
property was provided you can use your own names e.g below code will work if there was provided a ParameterNumberCheck=paramnum
in the aliasList
It is possible to suppress all the checkstyle warnings with the argument "all"
:
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