https://github.com/biezhi/learn-java8/tree/master/java8-lambda
Lombok表达式源码: git clone git@github.com:biezhi/learn-java8.git
ambda 表达式
命令式和函数式
命令式编程:命令“机器”如何去做事情(how),这样不管你想要的是什么(what),它都会按照你的命令实现。 声明式编程:告诉“机器”你想要的是什么(what),让机器想出如何去做(how)。
什么是函数式编程?
每个人对函数式编程的理解不尽相同。 我的理解是:在完成一个编程任务时,通过使用不可变的值或函数,对他们进行处理,然后得到另一个值的过程。 不同的语言社区往往对各自语言中的特性孤芳自赏。现在谈 Java 程序员如何定义函数式编程还为时尚早,但是,这根本不重要! 我们关心的是如何写出好代码,而不是符合函数式编程风格的代码。
行为参数化
把算法的策略(行为)作为一个参数传递给函数。
lambda 管中窥豹
- 匿名:它不像普通的方法那样有一个明确的名称:写得少而想得多!
- 函数:Lambda函数不像方法那样属于某个特定的类。但和方法一样,Lambda有参数列表、函数主体、返回类型,还可能有可以抛出的异常列表。
- 传递:Lambda表达式可以作为参数传递给方法或存储在变量中。
- 简