Shared coding conventions allow teams to collaborate effectively. While types for lambda arguments are optional, specifying them anyway makes the
code clearer and easier to read.
Noncompliant code example
Arrays.sort(rosterAsArray,
(a, b) -> { // Noncompliant
return a.getBirthday().compareTo(b.getBirthday());
}
);
Compliant solution
Arrays.sort(rosterAsArray,
(Person a, Person b) -> {
return a.getBirthday().compareTo(b.getBirthday());
}
);
Exceptions
When the lambda has one or two parameters and does not have a block this rule will not fire up an issue as things are considered more readable in
those cases.
stream.map((a, b) -> a.length); // compliant