Java8新特性 -- Lambda基础语法
Lambda 表达式的基础语法: Java8引入了一个新的操作符 “->” 该操作符称为箭头操作符或Lambda操作符, 该操作符将Lambda表达式拆分为两部分:
左侧: Lambda表达式参数列表;
右侧: Lambda表达式中所需执行的功能,即Lambda体。
语法格式一: 无参数,无返回值。 () -> { }
例如: Runnable runnable = () -> System.out.print("Hello Lambda");
语法格式二: 有一个参数,并且无返回值。 (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修饰 来检查是否是函数式接口。