RecordComponentNumber
Since Checkstyle 8.36
Description
          Checks the number of record components in the
          
          header of a record definition.
        
      Properties
| name | description | type | default value | since | 
|---|---|---|---|---|
| accessModifiers | Access modifiers of record definitions where the number of record components should be checked. | AccessModifierOption[] | public, protected, package, private | 
              
8.36 | 
| max | Specify the maximum number of components allowed in the header of a record definition. | int | 8 | 
              
8.36 | 
Examples
To configure the check:
<module name="Checker">
  <module name="TreeWalker">
    <module name="RecordComponentNumber"/>
  </module>
</module>
Java code example:
class Example1{
  public record MyRecord1(int x, int y, String str) {}
  public record MyRecord2(int x, int y, double d,
                    String str, char c, float f) {}
  record MyRecord3(int x, int y, int z, double d, // violation, 9 components
                    String str1, String str2, char c, float f, String location) {}
  private record MyRecord4(int x, int y,
                           String str, double d) {}
}
To configure the check to allow 5 record components at all access modifier levels for record definitions:
<module name="Checker">
  <module name="TreeWalker">
    <module name="RecordComponentNumber">
      <property name="max" value="5"/>
    </module>
  </module>
</module>
Java code example:
class Example2{
  public record MyRecord1(int x, int y, String str) {}
  public record MyRecord2(int x, int y, double d, // violation, 6 components
                    String str, char c, float f) {}
  record MyRecord3(int x, int y, int z, double d, // violation, 9 components
                    String str1, String str2, char c, float f, String location) {}
  private record MyRecord4(int x, int y,
                           String str, double d) {}
}
To configure the check to allow 10 record components for a public record definition, but 3 for private record definitions:
<module name="Checker">
  <module name="TreeWalker">
    <module name="RecordComponentNumber">
      <property name="max" value="3"/>
      <property name="accessModifiers" value="private"/>
    </module>
    <module name="RecordComponentNumber">
      <property name="max" value="5"/>
      <property name="accessModifiers" value="public"/>
    </module>
  </module>
</module>
Java code example:
class Example3 {
  public record MyRecord1(int x, int y, String str) {}
  public record MyRecord2(int x, int y, double d, // violation, 6 components
                    String str, char c, float f) {}
  record MyRecord3(int x, int y, int z, double d,
                    String str1, String str2, char c, float f, String location) {}
  private record MyRecord4(int x, int y, // violation, 4 components
                           String str, double d) {}
}
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.sizes






