Lambda 表达式的基础语法: Java8引入了一个新的操做符 “->” 该操做符称为箭头操做符或Lambda操做符, 该操做符将Lambda表达式拆分为两部分:函数
左侧: Lambda表达式参数列表;blog
右侧: Lambda表达式中所需执行的功能,即Lambda体。接口
语法格式一: 无参数,无返回值。 () -> { }编译器
例如: Runnable runnable = () -> System.out.print("Hello Lambda");io
语法格式二: 有一个参数,而且无返回值。 (x) ->{ }编译
说明: 若只有一个参数,小括号能够神略不写。
Consumer<String> consumer = (x) -> System.out.print("Hello Lambda");
语法格式四: 有两个以上参数,又返回值, 而且Lambda式中有多条语句。基础
说明: 若Lambda体中只有一条语句,return 和 大括号均可以省略不写。数据类型
Comparator<Integer> comparator = (x, y) -> {
System.out.print("Hello Lambda");
return Integer.compare(x,y);
};
说明: Lambda表达式参数列表的数据类型能够省略不写,由于JVM的编译器经过上下文能够推断出类型,即 “类型推断”语法
Lambda表达式须要“函数式接口”的支持。方法
函数式接口: 接口中只有一个抽象方法的接口,称为函数式接口。能够使用注解@FunctionalInterface修饰 来检查是不是函数式接口。