Skip to content

Lambda表达式

390字约1分钟

javalambda函数式接口

2024-10-24

1.定义

JDK8开始Java中出现的可以替换匿名内部类的技术

2.作用

1.替换匿名内部类,简化匿名内部类的写法

2.弥补Java中不能把方法(函数)作为参数的不足

3.形式

接口 接口对象 = (参数1,参数2,.....)->

4.怎么用

1.当需要使用到匿名内部类时简化匿名内部类的方法

2.构成

​ 2.1形参列表

​ 2.2->符

​ 2.3方法体

5.函数接口

接口中只能有一个无方法体的抽象方法,可以有static方法,default方法

函数接口才能作为lambda表达式使用

@FunctionInterface注解

表示一下接口为函数接口,只能有一个抽象方法

6.Lambda表达式的简化

1.形参

​ 1.1数据类型可简化(可不写数据类型,但是必须要都不写)

​ 1.2单个参数可以不写括号

2.方法体

​ 2.1{}可以在只有一行语句时省略,return一样

7.与匿名内部类的区别

1.所需类型不同:lambda为接口,匿名内部类可以是接口、抽象类、实体类

2.使用限制不同:lambda表达式的接口只能有一个抽象方法,匿名内部类没有限制

3.实现原理不同:匿名内部类编译后会产生.class文件,lambda表达式在运行过程中动态生成,不会产生.class文件