Why Do Local Variables Used in Lambdas Have to Be Final or Effectively Final

public static void main(String[] args) {
	StringBuffer name = new StringBuffer("TopJavaTutorial");
	Runnable r1 = () -> System.out.print(name);
	r1.run();
}

Em đọc thì biểu thức Lambdas phải sử dụng biến final thế sao StringBuffer ko phải final vẫn sử dụng đc vậy ạ.
Tiện ai giải thích giúp em vì sao với ạ, em đọc tiếng anh nhưng tiếng anh em cùi không hiểu được ạ

Ai nói với bạn là phải final? muốn hiểu sâu mà dễ thì đọc cái này: https://www.geeksforgeeks.org/lambda-expressions-java-8/

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?