Lambda 一个重要用法是简化某些匿名内部类,或者说是对函数式接口的实现。
函数式接口(Functional Interface)是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。(@Functional interface修饰)
简单例子:
// 1. 不需要参数,返回值为 5 () -> {return 5} // 2. 接收一个参数(数字类型),返回其2倍的值 (x) -> {return 2 * x} // 3. 接受2个参数(数字),并返回他们的差值 (int x, int y) -> {return x – y} //4. 接受一个 string 对象,并在控制台打印,不返回任何值(看起来像是返回void) (String s) -> {System.out.print(s)}省略写法:
省略参数类型 // 3. 接受2个参数(数字),并返回他们的差值 (x, y) -> {return x – y} 单个参数省略小括号(无参时要写小括号) // 2. 接收一个参数(数字类型),返回其2倍的值 x -> {return 2 * x} 无返回且仅有一条语句,省略大括号 //4. 接受一个 string 对象,并在控制台打印,不返回任何值(看起来像是返回void) (String s) -> System.out.print(s) 有返回且仅有一条语句,省略return 和 大括号 // 2. 接收一个参数(数字类型),返回其2倍的值 x -> 2 * x