A long parameter list can indicate that a new structure should be created to wrap the numerous parameters or that the function is doing too many things.

Noncompliant Code Example

With a maximum number of 4 parameters:

fun foo(p1: String, p2: String, p3: String, p4: String, p5: String) { // Noncompliant
  // ...
}

Compliant Solution

fun foo(p1: String, p2: String, p3: String, p4: String) {
  // ...
}

Exceptions

Methods annotated with Spring's @RequestMapping (and related shortcut annotations, like @GetRequest) or @JsonCreator may have a lot of parameters, encapsulation being possible. Such methods are therefore ignored.