Class MethodParamPadCheck

  • All Implemented Interfaces:
    Configurable, Contextualizable

    public class MethodParamPadCheck
    extends AbstractCheck

    Checks the padding between the identifier of a method definition, constructor definition, method call, or constructor invocation; and the left parenthesis of the parameter list. That is, if the identifier and left parenthesis are on the same line, checks whether a space is required immediately after the identifier or such a space is forbidden. If they are not on the same line, reports a violation, unless configured to allow line breaks. To allow linebreaks after the identifier, set property allowLineBreaks to true.

    • Property allowLineBreaks - Allow a line break between the identifier and left parenthesis. Type is boolean. Default value is false.
    • Property option - Specify policy on how to pad method parameter. Type is com.puppycrawl.tools.checkstyle.checks.whitespace.PadOption. Default value is nospace.
    • Property tokens - tokens to check Type is java.lang.String[]. Validation type is tokenSet. Default value is: CTOR_DEF, LITERAL_NEW, METHOD_CALL, METHOD_DEF, SUPER_CTOR_CALL, ENUM_CONSTANT_DEF, RECORD_DEF.

    To configure the check:

     <module name="MethodParamPad"/>
     
     public class Test {
      public Test() { // OK
         super(); // OK
       }
    
       public Test (int aParam) { // Violation - '(' is preceded with whitespace
         super (); // Violation - '(' is preceded with whitespace
       }
    
       public void method() {} // OK
    
       public void methodWithVeryLongName
         () {} // Violation - '(' is preceded with whitespace
    
     }
     

    To configure the check to require a space after the identifier of a method definition, except if the left parenthesis occurs on a new line:

     <module name="MethodParamPad">
       <property name="tokens" value="METHOD_DEF"/>
       <property name="option" value="space"/>
       <property name="allowLineBreaks" value="true"/>
     </module>
     
     public class Test {
       public Test() { // OK
         super(); // OK
       }
    
       public Test (int aParam) { // OK
         super (); // OK
       }
    
       public void method() {} // Violation - '(' is NOT preceded with whitespace
    
       public void methodWithVeryLongName
         () {} // OK, because allowLineBreaks is true
    
     }
     

    Parent is com.puppycrawl.tools.checkstyle.TreeWalker

    Violation Message Keys:

    • line.previous
    • ws.notPreceded
    • ws.preceded
    Since:
    3.4