美文网首页
Lambda初探

Lambda初探

作者: MC_Honva | 来源:发表于2019-04-03 22:27 被阅读0次

Lambda表达式基本概念

  1. 函数式接口:定义了有且仅有一个抽象方法的接口,哪怕接口中有其他默认的方法。
  2. 允许以内联的方式函数式接口的抽象方法提供实现,并把整个表达式作为函数接口的实现(具体的说是函数接口的具体实现)
  3. Lambda函数的签名:()->{};
  4. 函数描述符:函数表达式的签名基本上就是lambda表达式的签名。我们将这抽象的方法叫做函数描述符。

JAVA8中提供了4种函数式接口,分别如下

  • Predicate(断言型接口)

提供一个 boolean test(T):传入一个T参数,返回一个boolean值

  • Consumer(消费型接口,有去无回)

提供一个 void accept(T):传入一个T参数,无返回值

  • Function(功能性接口,有去有回)

提供一个 R apply(T):传入一个T参数,返回一个R值

  • Supplier(供给型接口)

提供一个 R get():无传入参数,返回一个R值

相应的简单实现如下
    @Test
    public void test1() {
        Predicate<Integer> predicate = (x)->x>100;
        predicate.test(101);
    }
    @Test
    public void test2() {
        Consumer<Integer> consumer = (x)->System.out.println(++x);
        consumer.accept(999);
    }
    @Test
    public void test3() {
        Supplier<String> supplier = ()->"hello";
        System.out.println(supplier.get());
    }
    @Test
    public void test4() {
        Predicate<Integer> predicate = (x)->x>100;
        predicate.test(101);
    }
    @Test
    public void test5() {
        Function<Integer, String> function = (x)->"result:"+x;
        function.apply(520);
    }

同时这四个接口还有一些子类接口,可以实现更多的操作

image

在package java.util.function;包中

相关文章

  • lambda初探

  • Lambda初探

    Lambda表达式基本概念 函数式接口:定义了有且仅有一个抽象方法的接口,哪怕接口中有其他默认的方法。 允许以内联...

  • Lambda 表达式

    一 lambda 表达式初探 关于定义:Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。使...

  • java lamda

    一、lambda初探 lambda可以是java_8出来新特性,可以使代码更加紧凑以及简洁,增加可读性,下面简单的...

  • 苹果 ARKit 初探

    苹果 ARKit 初探 苹果 ARKit 初探

  • 二,Kotlin之Lambda表达式详解

    概览 Lambda介绍 Lambda使用Lambda表达式的特点Lambda语法 Lambda实践it下划线(_)...

  • iOS 8 Size Classes初探

    iOS 8 Size Classes初探 iOS 8 Size Classes初探

  • WWDC 2018:初探 Create ML

    WWDC 2018:初探 Create ML WWDC 2018:初探 Create ML

  • iOS 初探代码混淆(OC)

    iOS 初探代码混淆(OC) iOS 初探代码混淆(OC)

  • JDK8新特性

    Lambda语法 Lambda是什么? "Lambda表达式"(Lambda expression)是一个匿名函数...

网友评论

      本文标题:Lambda初探

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