什么是闭包,Java中有闭包吗?
什么是闭包,Java中有闭包吗?
一、介绍
闭包是什么?我学习Java
以来,虽然听过这个名词,但我今天才第一次了解它。
所谓闭包,就是在函数中有另一个函数,这个内部函数可以作为参数,外部通过传递的方式,将函数传递进来。从而内部函数可以访问到外部函数的局部变脸。
二、演示
我们使用groovy
来演示闭包的使用,它是一门由java
优化而来的语言,底层正是class
,可以运行再JVM
虚拟机上。
1 | def sth(Closure closure) { |
运行结果如下
在Java
中,我们可以使用匿名内部类来完成类似的功能,而在Java8
后,可以直接使用lambda
表达式,使得编码速度大大提升,语法结构也变得大同小异了起来
使用如下,是不是差不多
1 | package com.banmoon.test.closure; |
关于函数式编程,可以看我的这篇文章,Java的函数式接口以及Lambda表达式
三、最后
我是半月,你我一同共勉!
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 半月无霜!
评论
ValineDisqus