## Why is this an issue?

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