1. Access local variables
You can access the final local variables outside the lambda expression:
final int num = 1; ConverterstringConverter = (from) -> String.valueOf(from + num); stringConverter.convert(2); // 3
But unlike anonymous objects, the variable num does not It needs to be final. Attempting to change the value of num inside a lambda expression is also not allowed.
2. Accessing member variables and static variables
Unlike local variables, we can get access to read and write member variables or static variables inside the lambda expression right. This access behavior is very typical for anonymous objects.
class Lambda4 { static int outerStaticNum; int outerNum; void testScopes() { ConverterstringConverter1 = (from) -> { outerNum = 23; return String.valueOf(from); }; Converter stringConverter2 = (from) -> { outerStaticNum = 72; return String.valueOf(from); }; } }
The above is the detailed content of What is the scope of use of Java Lambda. For more information, please follow other related articles on the PHP Chinese website!