Java基础系列18: Java8新特性
本文是作者的读书笔记和心得整理,部分内容来源于网络,如有侵权,请联系作者。
Lambad表达式
在最简单的形式中,一个lambda可以由用逗号分隔的参数列表、–>符号与函数体三部分表示
eg:
Arrays.asList( "a", "b", "d" ).forEach( e -> System.out.println( e ) );
注意e的类型可以不写,编译器会自动推测是什么类型
当然也可以把单句指令写成大括号包含的函数体
Arrays.asList( "a", "b", "d" ).forEach( e -> {
System.out.print( e );
System.out.print( e );
} );
注意lambda引用的变量会被转为final
也可以返回值,返回值类型也是编译器自动推断的
一种特殊的注解:@FunctionalInterface,使得这个类或者方法支持lambda表达式
方法引用
使用::操作符
直接上例子:
Function<String, Integer> stringToInteger = (String s) -> Integer.parseInt(s);
有了方法引用之后:
Function<String, Integer> stringToInteger = Integer::parseInt;
如果是引用构造函数,可以使用new关键