美文网首页
聊一下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表达式四大函数接口

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