Lambda表达式基本概念

java小课堂

李林朋

1.背景介绍

2.知识剖析

3.常见问题

4.解决方案

5.编码实战

6.扩展思考

7.参考文献

8.更多讨论

1.背景介绍

Lambda表达式式Java8的重要更新,Lambda表达式支持将代码块作为方法参数,可以使用Lambda 实现以更简洁的代码来创建只有一个抽象方法的接口的实例[1]

2.知识剖析

组成:

形参列表,如果形参列表中只有一个参数,可以将圆括号省略

箭头,由英文的中划线和大于符号组成

代码块,如果代码块中只包含一条语句,可以省略代码块的花括号

匿名内部类

适合于创建那种只需要一次使用的类,创建匿名内部类时会立即创建一个该类的实例,这个类定义立即 消失,匿名内部类不能重复使用

必须继承一个父类或实现一个接口

Lambda表达式可用于简化匿名内部类对象,代替匿名内部类的繁琐语法

函数式接口

函数式接口代表只包含一个抽象方法的接口

Lambda表达式的类型,也被称为目标类型,目标类型必须是函数式接口

Lambda表达式的结果就是被当成对象,所以可以使用Lambda表达式进行赋值

3.常见问题

Lambda表达式只能为函数式接口创建对象,所以以下的代码会报错

Object obj = () -> System.out.println()

4.解决方案

可以使用函数式接口对Lambda表达式进行强制类型转换

5.编码实战

6.扩展思考

Lambda表达式与匿名内部类的区别

匿名类可以为任意的接口创建实例

Lambda表达式的代码块不允许调用接口中定义的默认方法

7.参考文献

[1].java 核心卷

8.更多讨论

感谢观看

BY : 李林朋