lambda
格式
()->{
}
- 即使lambda表达式没有参数依然要提供空括号
- 如果可以推导出一个lambda表达式的参数类型,则可以忽略其类型
- lambda表达式可以捕获外界的变量,但是该变量无法修改,因为lambda表达式可能会产生线程不安全
- lambda表达式的域和其嵌套块一样,所以注意不能有同名的局部变量
- lambda和普通函数一样,都必须在各个分支都有return
- 函数式接口:只有一个抽象方法的接口。需要这种接口的时候,就可以提供一个lambda表达式,lambda表达式可以转换为接口
方法引用
var Timer=new Timer(1000,System.out::println)
- 让编译器生成一个函数式接口的实例,覆盖这个接口的抽象方法来调用给定的方法
- 可以在方法引用中使用this,super参数
构造器引用
Person []people=stream.toArray(Person[]::new);
- java无法构造泛型类型T的数组

浙公网安备 33010602011771号