Lambda表达式
-
Lambda表达式
- Lambda表达式为Java添加了缺失的函数式编程特 性,使我们能将函数当做⼀等公⺠看待
- 在将函数作为⼀等公⺠的语⾔中, Lambda表达式 的类型是函数。 但在Java中, Lambda表达式是对象,他们必须依附于⼀类特别的对象类型———函数式接⼝(functional interface)
- Lambda表达式可以被赋给一个变量,或传递给一个接受函数式接口作为参数的方法
-
语法
(parameters) -> expression 或 (parameters) ->{ statements; }
-
函数式接⼝
- 函数式接⼝是只包含⼀个自定义(Object方法覆盖的不属于自定义)抽象⽅法声明的接口。
- 比如:java.lang.Runnable 就是⼀种函数式接⼝,在Runnable 接⼝中只声明了⼀个⽅法 void run()
- 每个 Lambda 表达式都能隐式地赋值给函数式接⼝
-
@FunctionalInterface注解
- 标识所声明的接⼝为函数式接⼝
- 如果不满⾜函数式接⼝的要求,则编译器报错
- 并⾮必须,但凡满⾜函数式接⼝条件的接⼝,编译器均将其看作是函数式接⼝,即便没有添加FunctionalInterface注解亦如此
Lambda表达式可以被赋给一个变量,或传递给一个接受函数式接口作为参数的方法
函数式接口和描述
学习资料:
跟上Java8 - 带你实战Java8
JAVA8十大新特性详解(精编)
快速记忆总结篇。