简介
Lambda
允许把函数作为一个方法的参数(函数作为参数传递进方法中,使用 Lambda
表达式可以使代码变的更加简洁紧凑。
Lambda
表达式是JDK1.8的新特性,这个新是相对于JDK1.8之前的版本,现在也不新了,JDK17都出来了,现在JDK更新像做火箭一样快.
要求
并不是所有的接口都能用 Lambda
,Lambda
规定接口中只能有一个需要被实现的方法,不是只有一个方法.
函数式接口 @FunctionalInterface
只包含一个抽象方法的接口,称为函数式接口。所有方法上标有 @FunctionalInterface
注解的都可以;使用Lambda
表达式
语法
() -> {}
,()里面用来传参数,一个参数可以省略(),{}里面用来写方法体,只有一条方法体可以省略{}, -> 为 Lambda
运算符
lambda 表达式引用方法
语法
- 方法归属者::方法名 静态方法的归属者为类名,普通方法归属者为对象
- 类名::new 的方式来实例化对象,然后调用方法返回对象
例子
Function<Integer,User> userFunction = User::new;
Stream<Integer> stream = Stream.of(1, 2, 3, 4, 5, 6);
Stream<Integer> stream2 = Stream.iterate(0, (x) -> x + 3).limit(4);
stream2.forEach(System.out::println);
Lambda使用例子
new Thread(() -> {
System.out.println("heihei");
}).start();