Java8新特性3-函数式接口和Lambda表达式

1.函数式接口

1.只包含一个方法的接口(有且只有一个方法,并且该方法必须是抽象方法)叫函数式接口;

2.Java 8中通过@FunctionalInterface注解,将一个接口标注为函数式接口,该接口只能包含一个抽象方法,但是可以有一个或多个默认接口方法和静态方法;

3.函数式接口是为Java 8中的lambda而设计的,lambda表达式的方法体其实就是函数接口的实现;

 2.Lambda 表达式

1.Lambda 表达式是一个匿名方法,它是一个函数式接口的具体实现方式;

2.一个函数式接口都可以用Lambda表达式来实现;

3.语法结构:

 

Lambda表达式语法结构

 

包含三个部分

 

public void aa (String s, int a) {

 

。。。。。

 

。。。。。

 

}

 

 (String s, int a) -> {

 

。。。。。

 

。。。。。

 

}

1、一个括号内用逗号分隔的形式参数,参数是函数式接口里面方法的参数;

2、一个固定的箭头符号:->

3、一个方法体,方法体可以是表达式,也可以是代码块,方法体是函数式接口里面方法的具体实现;

总体结构如下:

(parameters) -> expression  或者  (parameters) -> { statements; }

1、括号里的形式参数类型可以省略,编译器会根据上下文来推测参数的类型,你也可以显式地指定参数类型;

2、如果没有形式参数,则括号里空着;

3、方法体,如果有多行功能语句用大括号括起来,如果只有一行功能语句则可以省略大括号,(一般地,如果Lambda的功能语句块比较复杂,我们都用大括号包起来);

4、如果Lambda方法体只有一行return语句,则如果省略了大括号,那么return可以省略;

5、如果参数列表只有一个参数,则参数列表的小括号可以省略;

 

 

 

 

 

 

 

posted on   companion  阅读(36)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
历史上的今天:
2020-02-11 虚拟机ifconfig没有ip地址
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示