Class StaticVariableNameCheck

  • All Implemented Interfaces:
    Configurable, Contextualizable

    public class StaticVariableNameCheck
    extends AbstractAccessControlNameCheck

    Checks that static, non-final variable names conform to a specified pattern.

    • Property format - Specifies valid identifiers. Type is java.util.regex.Pattern. Default value is "^[a-z][a-zA-Z0-9]*$".
    • Property applyToPublic - Controls whether to apply the check to public member. Type is boolean. Default value is true.
    • Property applyToProtected - Controls whether to apply the check to protected member. Type is boolean. Default value is true.
    • Property applyToPackage - Controls whether to apply the check to package-private member. Type is boolean. Default value is true.
    • Property applyToPrivate - Controls whether to apply the check to private member. Type is boolean. Default value is true.

    To configure the check:

     <module name="StaticVariableName"/>
     

    Code Example:

     class MyClass {
       public static int goodStatic = 2; // OK
       private static int BadStatic = 2; // violation, name 'BadStatic'
                                         // must match pattern '^[a-z][a-zA-Z0-9]*$'
     }
     

    An example of how to suppress the check to public and protected types is:

     <module name="StaticVariableName">
       <property name="applyToPublic" value="false"/>
       <property name="applyToProtected" value="false"/>
     </module>
     

    Code Example:

     class MyClass {
       public static int GoodStatic1 = 2; // OK
       protected static int GoodStatic2 = 2; //OK
       private static int goodStatic = 2 // OK
       private static int BadStatic = 2; // violation, name 'BadStatic'
                                         // 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 private and package-private types:

     <module name="StaticVariableName">
       <property name="format" value="^[a-z](_?[a-zA-Z0-9]+)*$"/>
       <property name="applyToPrivate" value="false"/>
       <property name="applyToPackage" value="false"/>
     </module>
     

    Code Example:

     class MyClass {
       public static int good_static = 2; // OK
       public static int Bad_Static = 2; // violation, name 'Bad_Static'
                                         // must match pattern '^[a-z](_?[a-zA-Z0-9]+)*$'
       private static int Good_Static1 = 2; // OK
       static int Good_Static2 = 2; // OK
     }
     

    Parent is com.puppycrawl.tools.checkstyle.TreeWalker

    Violation Message Keys:

    • name.invalidPattern
    Since:
    3.0