公司内部的一些新项目相继采用了Java 8,这才有了动力好好的研究一下Java 8这个传说中的大杀器。Java 8文档里面提到的第一个改进就是Lambda,就从它入手好了。社区好多大神都已经研究几年了,拜一下。有不准确的地方,望指正。
为什么要Lambda
把Java代码写得更简洁一点,更直白来说,就是写出来的代码篇幅更短。那么简单?核心来说,是的,不过可能额外带来一些好处。理论上来说,Lambda不是必需品,有了写的代码更优雅简练。Java最被诟病的问题之一就是代码量大(很多是无用的,只是语法要求这么干而已),Lambda能够给Java代码瘦瘦身。Java社区对Lambda的呼声一直很高,终于Java 8来了,项目中也陆续用起来。撒花…
Lambda到底是什么
Java中,Lambda是匿名方法,目的是简化函数接口(Functional Interface)的编写。
- 什么是函数接口?
函数接口是一种特殊的接口,是只有一个抽象方法的接口 - 什么是抽象方法?
抽象方法是没有实现的方法,也就是方法参数后面没有跟大括号
所以,Java中任何Lambda必定有对应的函数接口,函数接口是Lambda的类型,Lambda是函数接口的实例。函数接口需要提前声明好,Lambda在使用的时候再写。好烦啊,用Lambda还得先写函数接口?是的,不过JDK设计的时候考虑到这一点,预先给大家提供了好几个常用的函数接口,都在java.util.