Lambda表达式和函数式接口
一、Lambda表达式
1.Lambda表达式使用前后的对比:
举例一:
1 |
|
举例二
1 |
|
2.Lambda表达式的基本语法:
1.举例: (o1,o2) -> Integer.compare(o1,o2);
2.格式:
lambda操作符 或 箭头操作符
左边:lambda形参列表 (其实就是接口中的抽象方法的形参列表)
右边:lambda体 (其实就是重写的抽象方法的方法体)
3.如何使用:分为六种情况
总结六种情况:
左边:lambda形参列表的参数类型可以省略(类型推断);如果lambda形参列表只一个参数,其一对()也可以省略
右边:lambda体应该使用一对{}包裹;如果lambda体只一条执行语句(可能是return语句,省略这一对{}和return关键字
二、函数式接口
1.函数式接口的使用说明
如果一个接口中,只声明了一个抽象方法,则此接口就称为函数式接口。
我们可以在一个接口上使用 @FunctionalInterface 注解,这样做可以检查它是否是一个函数式接口。
Lambda表达式的本质:作为函数式接口的实例
2.Java8中关于Lambda表达式提供的4个基本的函数式接口
具体使用:
3.总结
3.1 何时使用lambda表达式?
当需要对一个函数式接口实例化的时候,可以使用lambda表达式。
3.2 何时使用给定的函数式接口?
如果我们开发中需要定义一个函数式接口,首先看看在已有的jdk提供的函数式接口是否提供了能满足需求的函数式接口。如果有,则直接调用即可,不需要自己再自定义了。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Toweringx的博客!
评论