Java8新特性之Lambda
基础语法
-> 箭头操作符
左侧是lambda表达式的参数列表,右侧是lambda表达式中所需的功能,即lambda体
语法格式一:无参数,无返回值
@Test
public void test02(){
Runnable runnable = () -> {
System.out.println("Hello Lambda");
};
}
语法格式二:有一个参数,无返回值
@Test
public void test03(){
Consumer<String> consumer = a -> System.out.println(a);
consumer.accept("1111111111!");
}
语法格式三:有两个以上的参数,有返回值(lambda体有多条语句)
@Test
public void test04(){
Comparator<Integer> comparator = (a, b) -> {
System.out.println("2222");
return Integer.compare(a, b);
};
}
语法格式四:有两个以上的参数,有返回值(lambda体只有一条语句)
Test
public void test04(){
Comparator<Integer> comparator = (a, b) -> Integer.compare(a, b);
}
lambda表达式的参数列表的数据类型可以省略不写,因为java8的JVM编译器可以通过上下文推断出参数类型
lambda表达式需要函数式接口的支持
函数式接口:接口中只要式抽象方法的接口称为函数式接口,可以用注解@FunctionaInterf修饰