众所周知,java8支持lambda表达式,常见的一些操作都可以通过lambda来实现,比如遍历List,或者是实现某个事件接口,还有我们熟悉的Swing的事件,如下案例所示:

有时候我们比较迷惑:Java明明是OOP语言,Lambda表达式岂不是破坏了OOP的封装特性?实则不然,Lambda其实是用接口实现的,而这个接口只有一个方法。我们看下面的案例:

这是一个简单的遍历数组的写法,通过传一个接口进去,然后用户去实现具体的遍历方法,上面看上去是一个很普通的匿名接口实现,但是如果我们用了Java8以后,这段代码会变得更加精简:

大家也许已经注意到了,此处的匿名接口实现不见了,仿佛出现了一段从没见过的代码,其实这就是Java8的lambda的实现:

其中array1是传给接口的参数,在这里直接省略了接口的实现过程,因为就一个方法,所以这个参数直接被传进print方法里面。
我们用个图来表示从OOP到FP(函数式编程)的过程。

本次给大家分享一些学习资料,里面包括:(高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)以及Java进阶学习路线图,添加微信号:19821111174 即可获取:最后,祝大家早日学有所成!
网友评论