java中的函数式编程

Lambda表达式

我们来看几道题目

在这四个表达式中

第一个表达式的a,b少了括号,因为含有两个元素,所以需要有括号

第二个正确

第三个括号里面要么a,b都不写参数类型,要么a,b都写,所以不正确

第四个 如果标注数据类型的话就算一个参数也需要括号,要么就不写数据类型

方法引用

 关键在于将来他这个方法引用对应的函数对象的内部逻辑其实就是调用这个方法,各自的参数部分就是你为了调用这个方法,那些未知的部分作为方法的参数

比如上述的几个方法,max方法所需要的参数int a,int  b作为参数,Math的max方法即为调用的方法

getName()里面的参数是Student本身的实例化对象

println里面的参数是所有父类,new方法里面不需要参数......

我们再来看几个转换

假设已经存在了类的对象,那么再转换成Lambda表达式的时候就不需要在传入类的实例化过程,具体如下

注意:如果new方法里面有参数,还是需要传入对应的参数

函数接口——jdk

这么多不同的函数和返回形式是不是意味着我们需要每次都自己重写一个接口呢,不是,在jdk中自带着很多接口,可以让我们直接去实现。

我们来看一个例子

在上述这段代码中,需要判断是否为偶数,我们可以将判断逻辑写到参数里面,这样子以后就算判断奇数也不用再到方法内部进行修改,直接在参数里面调用就行了

这个是关于这个方法的函数式方法引用

我们看到这个接口里面返回值是布尔值,需要一个参数。

我们可以讲这个函数的参数进行改写以用来调用这个接口,并且在调用方法的时候按照引用去引用方法,完成实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值