Skip to content

Latest commit

 

History

History
8 lines (6 loc) · 824 Bytes

详解Java中的闭包(Closure).md

File metadata and controls

8 lines (6 loc) · 824 Bytes

SOFAJRaft

闭包-匿名函数 一个持有外部环境变量的函数就是闭包 闭包(Closure)是一种能被调用对象,它保存了创建它的作用域的信息。

Java并不能显式地支持闭包,但对于非静态内部类而言,它不仅记录了其外部类的详细信息,还保留了一个创建非静态内部类对象的引用,并且可以直接调用外部类的private成员,因此可以把非静态内部类当成面向对象领域的闭包。

通过这种仿闭包的非静态内部类,可以很方便地实现回调功能,回调就是某个方法一旦获得了内部类对象的引用后,就可以在合适时候反过来调用外部类的方法。所谓回调,就是允许客户类通过内部类引用来调用其外部类的方法,这是一种非常灵活的功能。