Lambda

作者: BHPam | 来源:发表于2018-07-03 10:58 被阅读0次

    Lambda首先要了解接口函数和匿名函数这两个概念。

    接口函数

    接口函数指的是一个只包含一个抽象方法的接口(可以包含default方法和static方法),我们可以用注解@FunctionalInterface来标注一个接口函数,它会自动帮你检查这个接口是否满足接口函数的定义。

    匿名函数

    匿名函数指的是没有方法名的函数。
    Runnable run = () -> {}/expression;
    在->左边是参数,参数个数任意,可以不用写参数类型,如果只有一个参数可以省去括号;
    ->右边是要执行的代码,称为Lambda体

    Lambda

    具体的使用方法如下

    • 无参数无返回
    Runnable run = () -> System.out.println();
    new Thread(run).start();
    
    • 一个参数无返回
    //after java8 we can find functional interface Consumer in java.util.function
    Consumer<Integer> consumer = (a) -> System.out.println(a);
    //accept is an abstract method in Interface Consumer
    consumer.accept(a);
    
    • 有一个参数有返回值
    Function<String,Integer> function = (a) -> {
      Integer value = Integer.parseInt(a);
      return value;
    }
    function.apply("2333");
    
    • 多个参数一个返回值
    BiFunction<Integer,Integer,String> biFunction = (a,b) -> a+b+"";
    biFunction.apply(1,2);
    

    我们可以发现,Lambda的使用必需对应一个函数接口,如果每次使用Lambda都需要定义新的接口,那么就不能达到精简代码的目的。Java8提供了package java.util.function,里面有很多的函数接口可以直接使用。

    相关文章

      网友评论

          本文标题:Lambda

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