Home  >  Article  >  Java  >  What is the scope of use of Java Lambda

What is the scope of use of Java Lambda

PHPz
PHPzforward
2023-05-03 17:13:071171browse

1. Access local variables

You can access the final local variables outside the lambda expression:

final int num = 1;
Converter<Integer, String> stringConverter =
        (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() {
        Converter<Integer, String> stringConverter1 = (from) -> {
            outerNum = 23;
            return String.valueOf(from);
        };
 
        Converter<Integer, String> 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!

Statement:
This article is reproduced at:yisu.com. If there is any infringement, please contact admin@php.cn delete