Lambda 表达式(lambda expression)是一个匿名函数,Lambda 表达式基于数学 中的λ演算得名,直接对应于其中的 lambda 抽象(lambda abstraction),是一个匿 名函数,即没有函数名的函数。
Lambda语法
只有一行可以省略大括号:
(parameters) -> expression
或者:
(parameters) ->{ statements; }
Lambda例子
- 不需要参数,返回值为5
() -> 5
- 接收一个参数,然后返回2倍的值
x -> x * 2
- 接收两个参数,然后返回差值
(x, y) -> x – y
- 接收两个int参数,返回差值
(int x, int y) -> x + y
- 接收一个 string 对象,并在控制台打印
(String s) -> System.out.print(s)
Java中的例子
public interface MyLambdaInterface {
void doSth(int a);
}
MyLambdaInterface asc = a-> System.out.println(a);
asc.doSth(9);
毫无疑问会输出9,上面这个例子相当于对MyLambdaInterface接口的匿名实现。
Java中函数式
下面几个都是Java中函数式的接口,应该是为了方便使用所以定义了这些接口,比如Iterable中forEach方法参数就是Consumer<? super T> action,我们在使用的过程中也可以体会到。
- Predicate<T> 有参数、条件判断
- Function<T, R> 有参数、有返回值
- Consumer<T> 无返回值
- Supplier<T> 无参数、有返回值
网友评论