Lambda 表达式(使用前提、“类型推断”、作用、优缺点、Lambda还能省略的情况)
1.Lambda使用前提:
(1)使用Lambda必须有接口,且接口只有一个抽象方法(即函数式接口)。
(2)Lambda必须可以“上下文推断”(就是依据语境推断出参数类型,这也是Lambda的一个优点,使得参数类型得以省略,更加简洁)
2.Lambda中的“类型推断”—参数类型可以省略原因:
Lambda 表达式中无需指定类型,程序依然可以编译,Lambda 表达式的类型依赖于上下文环境,是由编译器推断出来的。这就是所谓的 “类型推断”。
3.Lambda(把匿名内部类当作参数) 表达式作用:函数式编程、替换匿名内部类(利用lambda实现函数式中的函数)。
4.Lambda表达式优缺点
优点:简洁,易于计算,尤其适用于遍历结果,循环计算数值或者赋值时。
缺点:(1)不容易debug模式调试;
(2)在lambda语句中强制类型转换不方便;
(3)不能再foreach中修改forEach外面的值;
(4)如果不并行计算,很多时候计算速度不如传统for循环.
5.Lambda还可以省略,变得更加简洁的情况:
可以省略的内容:
1、(参数列表):括号中的参数列表的数据类型,可以省略不写(编译器自己会根据上下文语境推断出类型的)
2、(参数列表):括号中的参数只有一个,()可以省略
3、(参数列表):Lambda体只有一句语句({ 只有一句语句 }),无论是否有返回值,都可以省略({ }, return , 分号 )!!!注意:在省略{ }的同时要(return)和分号一起省略