美文网首页
聊一下lambda表达式四大函数接口

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

作者: 小河土 | 来源:发表于2019-03-18 09:31 被阅读0次

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 这样的。

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

https://www.jianshu.com/p/b38ff80e3039

相关文章

  • Lambda表达式总结

    Lambda表达式总结使用范例以及例子Lambda表达式基础语法函数式接口Lambda练习Java8四大内置函数式...

  • 第二章 Lambda表达式

    引入Lambda表达式后: 编写Lambda表达式的不同形式: Lambda表达式本身的类型:函数接口 函数接口 ...

  • Lambda表达式

    Lambda表达式与函数式接口紧密相关,函数式接口介绍 Lambda表达式的基本语法 Java Lambda表达式...

  • java8- lambda 表达式、函数接口及四大内置函数接口

    lambda 表达式、函数接口及四大内置函数接口 详解 优点 简化代码 更加容易并行计算 语法 ​ lambd...

  • Lambda

    Lambda表达式的目标类型必须是函数式接口。函数式接口代表只包含一个抽象方法的接口 四大函数式接口参数返回描述C...

  • Java8 新特性 四大内置核心函数式接口及其扩展

    四大内置核心函数式接口 Java内置的函数式接口是为了方便开发者使用Lambda表达式,对于应对大部分函数式接口的...

  • Lambda表达式

    本篇文单主要介绍Lambda表达式,在介绍Lambda表达式之前,需要了解一下接口的静态方法,接口的默认方法,函数...

  • 3.JDK1.8特性之函数式接口

    1.什么是函数式接口 2.自定义函数式接口 3.Lambda表达式替代函数式接口做参数使用 4.Java内置四大核...

  • Java8的Lambda理解

    函数接口 为了理解Lambda,首先应该了解一下java8新出的函数接口,因为这是Lambda表达式的类型。它的定...

  • JDK8新特性 内置函数式接口

    1. 内置函数式接口由来 lambda表达式的前提是需要有函数式接口。而且lambda表达式使用时不关心接口名,抽...

网友评论

      本文标题:聊一下lambda表达式四大函数接口

      本文链接:https://www.haomeiwen.com/subject/achjfqtx.html