Lambda表达式
概述
lambda是JDK8中的一个语法糖。使用lambda表达式是为了避免匿名内部类定义过多。属于函数式编程。
什么情况下可以使用lambda表达式?
只有一个抽象方法的接口叫做函数式接口
实现了函数式接口的类创建对象时可以使用lambda表达式进行简化
我的理解
lambda表达式实际代表的是一个对象,这个对象的模板类是实现了函数式接口的。
例如:
new Thread(()->System.out.println("hello world!")).start();
()->System.out.println("hello world!") 这句实际代表的是一个实现了Runnable接口的类的对象。
()可以理解为接口方法的参数括号,有参数写参数,没参数写括号,参数类型可以省略,一个参数可以省略括号,多个参数必须加括号
System.out.println("hello world!")可以理解为接口的抽象方法实现,一行代码可以省略花括号{},多行代码必须加花括号{}