2020-03-04

Lambda expressions - Effectively final local variables

Effectively final local variables 

To capture variables from enclosing context in lambda expression body, the variables must be final or effectively final. final variables are declared with final modifiers. effectively final variables are never assigned after their initialization. Code in below has compilation error, because variable name is assigned again after its initialization, so name cannot be referenced in lambda expression body.

Compilation error of using non-final variables in lambda expression body 

public void run() { 
String name = "Alex"; 
new Thread(() -> System.out.println("Hello, " + name)).start(); 
name = "Bob"; 
}


No comments:

Post a Comment