TypeName
Since Checkstyle 3.0
Description
          Checks that type names conform to a specified pattern.
        
      Properties
| name | description | type | default value | since | 
|---|---|---|---|---|
| applyToPackage | Control if check should apply to package-private members. | boolean | true | 
              
5.0 | 
| applyToPrivate | Control if check should apply to private members. | boolean | true | 
              
5.0 | 
| applyToProtected | Control if check should apply to protected members. | boolean | true | 
              
5.0 | 
| applyToPublic | Control if check should apply to public members. | boolean | true | 
              
5.0 | 
| format | Sets the pattern to match valid identifiers. | Pattern | "^[A-Z][a-zA-Z0-9]*$" | 
              
3.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 | 
Examples
To configure the check:
<module name="Checker">
  <module name="TreeWalker">
    <module name="TypeName"/>
  </module>
</module>
Code Example:
class Example1 {
  public interface FirstName {}
  protected class SecondName {}
  enum Third_Name {} // violation 'Name 'Third_Name' must match pattern'
  private class FourthName_ {} // violation 'Name 'FourthName_' must match pattern'
}
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:
class Example2 {   // violation 'Name 'Example2' must match pattern'
  public interface firstName {}
  public class SecondName {} // violation 'Name 'SecondName' must match pattern'
  protected class ThirdName {}
  private class FourthName {}
}
          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:
class Example3 {
  public interface I_firstName {}
  interface SecondName {} // violation 'Name 'SecondName' must match pattern'
}
Example of Usage
Violation Messages
All messages can be customized if the default message doesn't suit you. Please see the documentation to learn how to.
Package
com.puppycrawl.tools.checkstyle.checks.naming






