Lambda 表达式与变量捕获

Lambda 表达式与变量捕获

💡 原文约400字/词,阅读约需2分钟。
📝

内容提要

表达式lambda可以访问类的实例变量和外部类的静态变量,但对外部作用域的局部变量有“有效最终”的限制,不能修改。实例变量可以自由使用和修改。

🎯

关键要点

  • 表达式lambda可以访问包含它的类的实例变量。
  • 表达式lambda可以访问外部类定义的静态变量。
  • 表达式lambda可以访问外部类的this参数,引用外部类的实例。
  • 使用外部作用域的局部变量时,该变量必须是有效最终的。
  • 有效最终的变量在赋值后不能被修改,不需要显式声明为final。
  • 修改局部变量会使其失去有效最终的状态,导致捕获无效。
  • 表达式lambda可以自由使用和修改类的实例变量,没有final状态的限制。
  • 示例中,局部变量num在lambda中可以访问但不能修改。
  • 如果尝试修改num,会导致编译错误。
  • 实例变量或静态变量可以在lambda中使用和修改,没有限制。
➡️

继续阅读