JDK8的函数式接口

JDK8的函数式接口

1:Lambda表达式需要函数式接口的支持

2:函数式接口就是只有一个抽象方法的接口

3:可以使用注解@funcitionalInterface修饰,限定该接口的格式,方式我们写错了

在这里插入图片描述
可以看到这是一个这是一个用于类,接口或者枚举类型的注解,@Retion表示该注解保留多长时间,它有以下三个取值
在这里插入图片描述
//:截图自个人有道云笔记

先来定义一个我们自己的函数式接口:

在这里插入图片描述

在这里插入图片描述

lambda表达式写的就是方法的具体实现,做一个字符串的拼接,这个函数式接口也能做其他各种各样的任务
也可以先定义方法的具体实现,再使用方法
在这里插入图片描述
将长度较长的字符串打印在控制台

Java内置的四大函数式接口

Comsumer: 消费性接口,消费对象
Supplier:供给性接口,生成对象
Function:函数性接口,指定特定功能(就像我们自定义的哪个函数式接口一样)
Predicate:断言性接口,条件判断
接下来一一使用它们:

Consumer接口实际用法:

比如我这里有一个需求,这是我在业务里实际遇到的需求,用户在elasticSerach搜索出来的数据有敏感和非敏感的区分以及数据经过算法得出的偏向性质,但是有时候这个性质用户看到觉得不对,需要改,而我偶们的数据是ElasticSearch一份,es的数据来自数据库,经过Logstash不断同步(设置一分钟一次)到Elasticsearch的,我们如果要更改es的数据的属性,就必须要更改数据库的数据的属性,不然下次logstash同步的时候,改动的数据就变过去了,如果我们这里一步步来,先改Es的数据,后改数据库的数据,这样花费的时间无疑是非常长的,用户可能难以接受。所以我们这里要用多线程和consumer接口,接下来,看代码:
在这里插入图片描述
这里用到了两个lambda表达式,一个是Comsumer的,另一个是Runnable的,如果用你咩那个内部类,至少增加二十行代码!!

Supplier供给性接口

在这里插入图片描述
理解成一个创建对象的工厂

Predicate断言接口

就是一个判断的接口哦
上代码:
在这里插入图片描述

Function函数性接口

它的作用就是指定特定功能的
看它的源代码
在这里插入图片描述
第一个参数是input,第二个参数是result
在这里插入图片描述
我这个代码有些脱了裤子放屁的感觉哈

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值