java8 Lambda表达式

本文详细介绍了Java8的Lambda表达式,包括其组成、简单实现、语法以及多种情况下的应用。Lambda表达式简化了代码,可替代匿名内部类实现接口。文章还探讨了Lambda的精简语法,方法引用和构造方法引用的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、Lambda表达式介绍

二、Lambda表达式详解

①Lambda表达式组成

②Lambda表达式简单实现

③Lambda表达式语法

④多种情况实现Lambda表达式(根据上面所建的类)

 1、无参无返回值

2、一个参数无返回值

3、两个参数无返回值

4、无参数有返回值

5、一个参数有返回值

6、两个参数多返回值

⑤Lambda表达式精简语法

1、参数类型可以省略 ​编辑

2、假如只有一个参数,()括号可以省略

3、如果方法体只有一条语句,{}可以省略

4、如果方法体中唯一的语句是return语句,那省略大括号的同时return也要省略

⑥Lambda方法引用:

⑦构造方法引用

   


一、Lambda表达式介绍

        java8的一个大亮点就是引入Lambda表达式,使用它设计的代码会更加简洁,通过Lambda表达式,可以代替我们以前经常写的匿名内部类来实现接口。Lambda表达式本质是一个匿名函数。

二、Lambda表达式详解

①Lambda表达式组成

        首先由三部分组成,一个(),一个->,一个{},  ()里面是所要存放的参数,{}里面是我们要实现的具体内容。

②Lambda表达式简单实现

        首先我们可以试一下,首先创建一个类Program,写一个main方法,写一个接口类

        

 

 咱们先来看一下输出的结果:

        

 可以看到,输出的结果为3,这就是最简单的一个Lambda表达式。

③Lambda表达式语法

        我们看一下下面这个Lambda表达式:

        (int a,int b) ->{return a+b;}

        这个本质上是一个函数

        那么我们看一下一般的函数:

int add(int a,int b){
    return a+b;
}

        有返回值,方法名,参数列表,方法体(花括号里面的就是方法体)

        所以我们可以看到,Lambda表达式函数的话,只有参数列表和方法体,没有返回值和方法名,所以称为匿名函数。( 参数列表 )->{ 方法体 }

④多种情况实现Lambda表达式(根据上面所建的类)

 1、无参无返回值

                

 

         所得结果:

         

2、一个参数无返回值

 

 所得结果:

3、两个参数无返回值

        

 

 所得结果:

4、无参数有返回值

        

 

 所得结果:

5、一个参数有返回值

 

 

 所得结果:

6、两个参数多返回值

        

 

 

⑤Lambda表达式精简语法

1、参数类型可以省略 

         比如说这里的定义int a, int b

         可以直接写成这样

2、假如只有一个参数,()括号可以省略

         像这个只有一个参数

        可以直接将小括号省略掉 

3、如果方法体只有一条语句,{}可以省略

 

 像这个只有一条语句

 可以直接将{}省略

4、如果方法体中唯一的语句是return语句,那省略大括号的同时return也要省略

        

        

   这样就可以了

⑥Lambda方法引用:

        有的时候多个Lambda表达式实现的函数是一样的话,我们可以封装成通用方法,以便于维护;这个时候可以用方法引用实现

语法是: 对象::方法       假如是static方法,可以直接 类名::方法

        咱们只保留一个作为实例:

我们看到业务操作就是a-2

 

 我们来看结果:

 但是又有个代码块,又有一个实现

        

 

 这样的话,我们可以封装成一个方法

        

 然后通过我们的类

 创建一个对象

 我们按照上面的格式书写:

 

可以看到结果还是 1和3 

如果是静态的

那么可以直接  类名::方法

 

 

答案仍然是1和3 

⑦构造方法引用

        如果函数式接口的实现恰好可以通过调用一个类的构造方法来实现

        那么就可以使用构造方法引用

        语法:类名::new

        首先我们定义一个Dog实例:

        

 

 

 再定义两个接口:

 

 调用无参构造方法:可以直接这样书写

 

 这是有参的

 

   

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值