Since Checkstyle 10.18.0
Ensures that lambda parameters that are not used are declared as an unnamed variable.
Rationale:
_
).
See the Java Language Specification for more information about unnamed variables.
Attention: Unnamed variables are available as a preview feature in Java 21, and became an official part of the language in Java 22. This check should be activated only on source code which meets those requirements.
To configure the check:
<module name="Checker"> <module name="TreeWalker"> <module name="UnusedLambdaParameterShouldBeUnnamed"/> </module> </module>
Example:
class Example1 { int x; void test() { // violation below, 'Unused lambda parameter 'x' should be unnamed' Function<Integer, Integer> f1 = (x) -> this.x + 1; // ok below, parameter is unnamed Function<Integer, Integer> f2 = (_) -> this.x + 1; // ok below, parameter is used Function<Integer, Integer> f3 = (x) -> x + 1; // violation below, 'Unused lambda parameter 'y' should be unnamed' BiFunction<Integer, Integer, Integer> bf1 = (x, y) -> x + this.x; } }
All messages can be customized if the default message doesn't suit you. Please see the documentation to learn how to.
com.puppycrawl.tools.checkstyle.checks.coding