您的位置:首页 > 其它

闭包

2015-10-14 00:33 218 查看
引用自《Thinking in Java》:

“闭包也是一种为表示带有自由变量的过程而用的实现技术



为什么Java中匿名类引用外部的局部变量必须是final类型的

因为理论上 匿名类和外部的局部变量应该是同一个引用(注意是
一个引用而不是多个引用指向同一个对象
)。但是由于两者的生命周期不同,并且没有确定的先后关系,对于内部类闭包,由于内部类实例生命周期晚于外部类所以不需要为final,但是由于匿名类没有这种先后关系,所以实际上,他们是不同的引用,但是为了保证逻辑上的一致性,将匿名内部类强制为final。

参考资料:

why-are-only-final-variables-accessible-in-anonymous-class

维基百科地址
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  闭包 Closure