聊一下lambda表达式四大函数接口

lambda表达式

主要以functionInterface 注解。 成为函数式 接口。

方法可以是有参数。参数类型可以不用写, 编译器会自行推算

可以是无参数。

但是只能有一个方法。 jdk 1.8以后 可以有 default修饰的方法

主要的四大函数 接口

1.Consumer 类

我们来看下 源码


clipboard.png

accept 方法 是没有返回值的, 该方法对传入的单个参数进行 操作。然后输出

andThen 这是一个用来做链式处理的方法,该方法返回的是一个Consumer对象,假设调用者的Consumer对象为A,输入参数Consumer对象设为B,那么返回的Consumer对象C的accept方法的执行体就是A.accept()+B.accept()

accept方法

示例:

[图片上传失败...(image-b88e97-1542177346379)]

andThen方法示例

[图片上传失败...(image-74ad67-1542177346379)]

2.Supplier<T> 类

[图片上传失败...(image-9d02bd-1542177346379)]

该类 没有参数。 返回值是T

作用, 可以当作工厂类来调用。

示例:

[图片上传失败...(image-448ff0-1542177346379)]

这里T 必须要有构造器

Function<T,R>接口


image.png

[图片上传失败...(image-d3e991-1542177346379)]

[图片上传失败...(image-fc40f7-1542177346379)]

[图片上传失败...(image-81f5b3-1542177346379)]

T作为输入, 返回值是R

apply方法

[图片上传失败...(image-b8a905-1542177346379)]

对单个对象的处理。儿具体的处理逻辑是在调用传入,即传入传递的是一种操作。

andThen 方法

其实跟上面 Consumer里面的方法是一样的, 就是在 apply方法之后 再进行apply。

例如:

[图片上传失败...(image-8803de-1542177346379)]

compose方法是先进行func2的操作, 再进行func里面的操作。与andThen 方法正好是相反的。

Predicate接口

java8源码如下:

[图片上传失败...(image-b08353-1542177346378)]

test()方法传入值的进行判断, 返回的是boolean类型。 可以理解为 是处理参数T,满足什么条件。

and ()方法 这里是对传入的值进行第二次判断,调用当前的Predicate的test方法, 再调用 otherd test

方法。 可以理解为, 条件A&&条件B。

negate()方法。 对当前test()判断的 进行 "!"操作。如 !条件A,这样的。

isEqual() 方法 就是对参入参数 进行判断 等于当前条件的。如A==B 这样的。

参考链接://www.greatytc.com/p/0746aaf5f955

//www.greatytc.com/p/b38ff80e3039

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 2018/11/14 故障风格海报/照片处理应该怎么做?又名:有什么方法能让性感吸血鬼汤姆哈迪更性感(辣眼睛)? ...
    Ndebele阅读 909评论 0 0
  • 一、简介 Apache Kafka是分布式发布-订阅消息系统,在kafka官网上对 kafka 的定义:一个分布式...
    北子萌阅读 262评论 0 0
  • 循环结构 要么痛苦的坚持游戏结束 可能会升级 要么结束游戏继续的痛苦 可能有遗憾 知识点 (1) . whil...
    拾起_518阅读 361评论 0 0
  • 臣闻求木之长者,必固其根本;欲流之远者,必浚其泉源;思国之安者,必积其德义。源不深而望流之远,根不固而求木之长,...
    唐牛牛Fly阅读 174评论 0 0
  • 入库完成后,需要对出库进行操作,即物资发货。 一、创建预留导入模板 1、发货物资数据导出 用事务代码 zp21mm...
    刺儿460阅读 308评论 0 0