Since Checkstyle 3.0
Checks that type names conform to a specified pattern.
name | description | type | default value | since |
---|---|---|---|---|
format | Specifies valid identifiers. | Pattern | "^[A-Z][a-zA-Z0-9]*$" |
3.0 |
applyToPublic | Controls whether to apply the check to public member. | boolean | true |
5.0 |
applyToProtected | Controls whether to apply the check to protected member. | boolean | true |
5.0 |
applyToPackage | Controls whether to apply the check to package-private member. | boolean | true |
5.0 |
applyToPrivate | Controls whether to apply the check to private member. | boolean | true |
5.0 |
tokens | tokens to check | subset of tokens CLASS_DEF , INTERFACE_DEF , ENUM_DEF , ANNOTATION_DEF , RECORD_DEF . | CLASS_DEF , INTERFACE_DEF , ENUM_DEF , ANNOTATION_DEF , RECORD_DEF . | 3.0 |
To configure the check:
<module name="Checker"> <module name="TreeWalker"> <module name="TypeName"/> </module> </module>
Code Example:
public interface FirstName {} // OK protected class SecondName {} // OK enum Third_Name {} // violation, name 'Third_Name' must match pattern '^[A-Z][a-zA-Z0-9]*$' private class FourthName_ {} // violation, name 'FourthName_' // must match pattern '^[A-Z][a-zA-Z0-9]*$'
An example of how to configure the check for names that begin with a lower case letter, followed by letters, digits, and underscores. Also, suppress the check from being applied to protected and private type:
<module name="Checker"> <module name="TreeWalker"> <module name="TypeName"> <property name="format" value="^[a-z](_?[a-zA-Z0-9]+)*$"/> <property name="applyToProtected" value="false"/> <property name="applyToPrivate" value="false"/> </module> </module> </module>
Code Example:
public interface firstName {} // OK public class SecondName {} // violation, name 'SecondName' // must match pattern '^[a-z](_?[a-zA-Z0-9]+)*$' protected class ThirdName {} // OK private class FourthName {} // OK
The following configuration element ensures that
interface names begin with "I_"
, followed by
letters and digits:
<module name="Checker"> <module name="TreeWalker"> <module name="TypeName"> <property name="format" value="^I_[a-zA-Z0-9]*$"/> <property name="tokens" value="INTERFACE_DEF"/> </module> </module> </module>
Code Example:
public interface I_firstName {} // OK interface SecondName {} // violation, name 'SecondName' // must match pattern '^I_[a-zA-Z0-9]*$'
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.naming