ERROR - Lambda expression's parameter [p] cannot redeclare another local variable defined in an enclosing scope.

Error

Lambda expression's parameter [p] cannot redeclare another local variable defined in an enclosing scope.

while using Lambda Expressions in Java 8.

Error Type

Compile Time ( Java 8 )

Sample Code

Predicate<Integer> p = p->p>3;

Cause

Lambda Expression has not been specified correctly. As p has been declared as the predicate reference, we should use a separate qualifier for Lambda Expression. 

Resolution

Specify different reference name or different specifier for Lambda expression.

Predicate<Integer> predicate = p->p>3;