MemberName

Since Checkstyle 3.0

Description

Checks that instance variable names conform to a specified pattern.

Properties

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 3.4
applyToProtected Controls whether to apply the check to protected member. boolean true 3.4
applyToPackage Controls whether to apply the check to package-private member. boolean true 3.4
applyToPrivate Controls whether to apply the check to private member. boolean true 3.4

Examples

To configure the check:

<module name="Checker">
  <module name="TreeWalker">
    <module name="MemberName"/>
  </module>
</module>
        

Code Example:

class MyClass {
  public int num1; // OK
  protected int num2; // OK
  final int num3 = 3; // OK
  private int num4; // OK

  static int num5; // ignored: not an instance variable
  public static final int CONSTANT = 1; // ignored: not an instance variable

  public int NUM1; // violation, name 'NUM1'
                   // must match pattern '^[a-z][a-zA-Z0-9]*$'
  protected int NUM2; // violation, name 'NUM2'
                      // must match pattern '^[a-z][a-zA-Z0-9]*$'
  final int NUM3; // violation, name 'NUM3'
                  // must match pattern '^[a-z][a-zA-Z0-9]*$'
  private int NUM4; // violation, name 'NUM4'
                    // must match pattern '^[a-z][a-zA-Z0-9]*$'
}
        

An example of how to configure the check for names that begin with "m", followed by an upper case letter, and then letters and digits. Also, suppress the check from being applied to protected and package-private member:

<module name="Checker">
  <module name="TreeWalker">
    <module name="MemberName">
      <property name="format" value="^m[A-Z][a-zA-Z0-9]*$"/>
      <property name="applyToProtected" value="false"/>
      <property name="applyToPackage" value="false"/>
    </module>
  </module>
</module>
        

Code Example:

class MyClass {
  public int num1; // violation, name 'num1'
                   // must match pattern '^m[A-Z][a-zA-Z0-9]*$'
  protected int num2; // OK
  int num3; // OK
  private int num4; // violation, name 'num4'
                    // must match pattern '^m[A-Z][a-zA-Z0-9]*$'
}
        

An example of how to suppress the check which is applied to public and private member:

<module name="Checker">
  <module name="TreeWalker">
    <module name="MemberName">
      <property name="applyToPublic" value="false"/>
      <property name="applyToPrivate" value="false"/>
    </module>
  </module>
</module>
        

Code Example:

class MyClass {
  public int NUM1; // OK
  protected int NUM2; // violation, name 'NUM2'
                      // must match pattern '^[a-z][a-zA-Z0-9]*$'
  int NUM3; // violation, name 'NUM3'
            // must match pattern '^[a-z][a-zA-Z0-9]*$'
  private int NUM4; // OK
}
        

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

Parent Module

TreeWalker