Lambda 中的 final 变量与 effectively final 变量是什么?
What are final variables and effectively final variables in lambdas?
题目类型: 技术面试题
这是一道技术面试题,常见于澳洲IT公司面试中。
难度: medium
分类: programming, java
标签: final, effectively final, Closure
参考答案摘要
核心答案 在 Java Lambda 中,捕获外部局部变量时要求该变量是 final 或 effectively final 。 定义 final :显式用 final 声明,赋值后不可再修改。 effectively final :没有写 final ,但在初始化后 从未被重新赋值 ,编译器把它当作“等效 final”。 原因是 Lambda 可能在不同时间/线程执行,需要确保捕获变量的一致性。
本题提供 STAR 原则详细解答和技术解析,登录匠人学院学习中心即可查看完整答案。